From 4065fc8437bfa1b4aa6ec63bd675bf82302cc755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danny=20M=C3=B6sch?= Date: Wed, 8 Oct 2025 08:12:05 +0200 Subject: [PATCH] Enable upcoming feature `MemberImportVisibility` (#6286) --- Package.swift | 1 + .../Rules/Idiomatic/BlockBasedKVORule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Idiomatic/FileNameRule.swift | 2 ++ .../Rules/Idiomatic/NimbleOperatorRule.swift | 1 + .../Rules/Idiomatic/NoMagicNumbersRule.swift | 2 ++ .../Rules/Idiomatic/PreferKeyPathRule.swift | 1 + .../Rules/Idiomatic/PreferZeroOverExplicitInitRule.swift | 1 + .../Rules/Idiomatic/RedundantObjcAttributeRule.swift | 1 + .../Rules/Idiomatic/ReturnValueFromVoidFunctionRule.swift | 1 + .../Rules/Idiomatic/UnneededBreakInSwitchRule.swift | 1 + .../Rules/Idiomatic/UnneededSynthesizedInitializerRule.swift | 2 ++ .../Rules/Lint/BlanketDisableCommandRule.swift | 3 +++ .../SwiftLintBuiltInRules/Rules/Lint/ExpiringTodoRule.swift | 1 + .../Rules/Lint/InvalidSwiftLintCommandRule.swift | 1 + Source/SwiftLintBuiltInRules/Rules/Lint/TodoRule.swift | 1 + .../Rules/Lint/UnusedClosureParameterRule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Metrics/FileLengthRule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Metrics/LineLengthRule.swift | 1 + .../Rules/Metrics/TypeBodyLengthRule.swift | 1 + .../Rules/Performance/EmptyCountRule.swift | 1 + .../RuleConfigurations/DeploymentTargetConfiguration.swift | 2 ++ .../Rules/RuleConfigurations/FileHeaderConfiguration.swift | 1 + .../Rules/RuleConfigurations/FileNameConfiguration.swift | 2 ++ .../Rules/Style/ClosureEndIndentationRule.swift | 1 + .../Rules/Style/ContrastedOpeningBraceRule.swift | 2 ++ .../Rules/Style/InclusiveLanguageRule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Style/OpeningBraceRule.swift | 2 ++ .../Rules/Style/PreferSelfTypeOverTypeOfSelfRule.swift | 1 + .../Rules/Style/SortedEnumCasesRule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Style/SortedImportsRule.swift | 2 ++ .../Rules/Style/SuperfluousElseRule.swift | 1 + .../SwiftLintBuiltInRules/Rules/Style/TrailingCommaRule.swift | 1 + .../Rules/Style/TrailingWhitespaceRule.swift | 1 + Source/SwiftLintBuiltInRules/Rules/Style/VoidReturnRule.swift | 1 + Source/SwiftLintCore/Extensions/QueuedPrint.swift | 1 + .../Extensions/SourceKittenDictionary+Swiftlint.swift | 1 + Source/SwiftLintCore/Extensions/SwiftLintFile+Cache.swift | 1 + Source/SwiftLintCore/Extensions/SwiftSyntax+SwiftLint.swift | 3 ++- Source/SwiftLintCore/Models/Example.swift | 2 ++ Source/SwiftLintCore/Models/RuleDescription.swift | 2 ++ Source/SwiftLintCore/Models/StyleViolation.swift | 3 +++ .../SwiftLintCore/Protocols/SwiftSyntaxCorrectableRule.swift | 1 + Source/SwiftLintCore/Visitors/CommandVisitor.swift | 1 + Source/SwiftLintCoreMacros/TemporaryDirectory.swift | 1 + Source/SwiftLintCoreMacros/WorkingDirectory.swift | 1 + .../Configuration/Configuration+FileGraphSubtypes.swift | 1 + .../Configuration/Configuration+Remote.swift | 1 + .../SwiftLintFramework/Extensions/FileManager+SwiftLint.swift | 1 + Source/SwiftLintFramework/Extensions/String+XML.swift | 2 ++ Source/SwiftLintFramework/Helpers/Glob.swift | 1 + Source/SwiftLintFramework/Reporters/JUnitReporter.swift | 2 ++ Source/swiftlint-dev/Reporters+Register.swift | 1 + Source/swiftlint/Common/LintOrAnalyzeArguments.swift | 1 + Tests/BuiltInRulesTests/NumberSeparatorRuleTests.swift | 4 +++- Tests/CoreTests/CommentLinesVisitorTests.swift | 4 +++- Tests/CoreTests/ExtendedStringTests.swift | 1 + Tests/CoreTests/StringExtensionTests.swift | 1 + Tests/CoreTests/SwiftLintFileTests.swift | 4 +++- Tests/FileSystemAccessTests/BaselineTests.swift | 3 ++- Tests/FrameworkTests/CollectingRuleTests.swift | 4 +++- Tests/FrameworkTests/StringViewExtensionTests.swift | 1 + Tests/IntegrationTests/IntegrationTests.swift | 2 ++ Tests/TestHelpers/TestResources.swift | 1 + bazel/copts.bzl | 2 ++ 64 files changed, 92 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index 6197aec46..0e700b09e 100644 --- a/Package.swift +++ b/Package.swift @@ -11,6 +11,7 @@ let swiftFeatures: [SwiftSetting] = [ .enableUpcomingFeature("ImportObjcForwardDeclarations"), .enableUpcomingFeature("InferIsolatedConformances"), .enableUpcomingFeature("InferSendableFromCaptures"), + .enableUpcomingFeature("MemberImportVisibility"), ] let strictConcurrency = [SwiftSetting.enableExperimentalFeature("StrictConcurrency=complete")] let targetedConcurrency = [SwiftSetting.enableExperimentalFeature("StrictConcurrency=targeted")] diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/BlockBasedKVORule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/BlockBasedKVORule.swift index e0115da92..1b1e59481 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/BlockBasedKVORule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/BlockBasedKVORule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax @SwiftSyntaxRule diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/FileNameRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/FileNameRule.swift index f4651b9ef..393c37bfe 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/FileNameRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/FileNameRule.swift @@ -1,3 +1,5 @@ +import Foundation +import SourceKittenFramework import SwiftSyntax struct FileNameRule: OptInRule, SourceKitFreeRule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NimbleOperatorRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NimbleOperatorRule.swift index 2d7ec97bc..c7d100053 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NimbleOperatorRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NimbleOperatorRule.swift @@ -1,5 +1,6 @@ import SwiftLintCore import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true, optIn: true) struct NimbleOperatorRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NoMagicNumbersRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NoMagicNumbersRule.swift index 096410584..e6e3ee016 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NoMagicNumbersRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/NoMagicNumbersRule.swift @@ -1,5 +1,7 @@ // swiftlint:disable file_length +import Foundation +import SwiftLintCore import SwiftSyntax @SwiftSyntaxRule(foldExpressions: true, optIn: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferKeyPathRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferKeyPathRule.swift index 071b11f60..25233af1f 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferKeyPathRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferKeyPathRule.swift @@ -1,5 +1,6 @@ import SwiftLintCore import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true, optIn: true) struct PreferKeyPathRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferZeroOverExplicitInitRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferZeroOverExplicitInitRule.swift index d8faf71d5..83965f6f0 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferZeroOverExplicitInitRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/PreferZeroOverExplicitInitRule.swift @@ -1,4 +1,5 @@ import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true, optIn: true) struct PreferZeroOverExplicitInitRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/RedundantObjcAttributeRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/RedundantObjcAttributeRule.swift index ed18f588c..4c72ef87e 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/RedundantObjcAttributeRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/RedundantObjcAttributeRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftSyntax private let attributeNamesImplyingObjc: Set = [ diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/ReturnValueFromVoidFunctionRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/ReturnValueFromVoidFunctionRule.swift index 0445058f2..e0a6d1501 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/ReturnValueFromVoidFunctionRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/ReturnValueFromVoidFunctionRule.swift @@ -1,3 +1,4 @@ +import SwiftBasicFormat import SwiftSyntax @SwiftSyntaxRule(explicitRewriter: true, optIn: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededBreakInSwitchRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededBreakInSwitchRule.swift index 1be10e9f3..ec84fe2f1 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededBreakInSwitchRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededBreakInSwitchRule.swift @@ -1,3 +1,4 @@ +import SwiftBasicFormat import SwiftSyntax private func embedInSwitch( diff --git a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededSynthesizedInitializerRule.swift b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededSynthesizedInitializerRule.swift index 04442fcef..32e2b2a7b 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededSynthesizedInitializerRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Idiomatic/UnneededSynthesizedInitializerRule.swift @@ -11,7 +11,9 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // +import Foundation import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true) struct UnneededSynthesizedInitializerRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/BlanketDisableCommandRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/BlanketDisableCommandRule.swift index ba6a1631b..7179e0947 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/BlanketDisableCommandRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/BlanketDisableCommandRule.swift @@ -1,3 +1,6 @@ +import Foundation +import SourceKittenFramework + struct BlanketDisableCommandRule: Rule, SourceKitFreeRule { var configuration = BlanketDisableCommandConfiguration() diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/ExpiringTodoRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/ExpiringTodoRule.swift index 49cf8c43d..9cfe264a7 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/ExpiringTodoRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/ExpiringTodoRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftSyntax @SwiftSyntaxRule(optIn: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/InvalidSwiftLintCommandRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/InvalidSwiftLintCommandRule.swift index a2e248420..1c604b211 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/InvalidSwiftLintCommandRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/InvalidSwiftLintCommandRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework struct InvalidSwiftLintCommandRule: Rule, SourceKitFreeRule { var configuration = SeverityConfiguration(.warning) diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/TodoRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/TodoRule.swift index c0749e278..6dd9d95fb 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/TodoRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/TodoRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftSyntax @SwiftSyntaxRule diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/UnusedClosureParameterRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/UnusedClosureParameterRule.swift index 84868caeb..4cc57ee7c 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/UnusedClosureParameterRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/UnusedClosureParameterRule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax import SwiftSyntaxBuilder diff --git a/Source/SwiftLintBuiltInRules/Rules/Metrics/FileLengthRule.swift b/Source/SwiftLintBuiltInRules/Rules/Metrics/FileLengthRule.swift index 1cfb7c7ba..97ed2b7be 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Metrics/FileLengthRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Metrics/FileLengthRule.swift @@ -1,3 +1,4 @@ +import SourceKittenFramework import SwiftSyntax @SwiftSyntaxRule diff --git a/Source/SwiftLintBuiltInRules/Rules/Metrics/LineLengthRule.swift b/Source/SwiftLintBuiltInRules/Rules/Metrics/LineLengthRule.swift index 28ae7a1df..26f880a15 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Metrics/LineLengthRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Metrics/LineLengthRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Metrics/TypeBodyLengthRule.swift b/Source/SwiftLintBuiltInRules/Rules/Metrics/TypeBodyLengthRule.swift index 47aa4f021..af558f6e8 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Metrics/TypeBodyLengthRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Metrics/TypeBodyLengthRule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax @SwiftSyntaxRule diff --git a/Source/SwiftLintBuiltInRules/Rules/Performance/EmptyCountRule.swift b/Source/SwiftLintBuiltInRules/Rules/Performance/EmptyCountRule.swift index 17f78ea76..465f59212 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Performance/EmptyCountRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Performance/EmptyCountRule.swift @@ -2,6 +2,7 @@ import SwiftLexicalLookup import SwiftLintCore import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(foldExpressions: true, explicitRewriter: true, optIn: true) struct EmptyCountRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/DeploymentTargetConfiguration.swift b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/DeploymentTargetConfiguration.swift index 0c1dc4988..8f5a02681 100644 --- a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/DeploymentTargetConfiguration.swift +++ b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/DeploymentTargetConfiguration.swift @@ -1,3 +1,5 @@ +import Foundation + struct DeploymentTargetConfiguration: SeverityBasedRuleConfiguration { typealias Parent = DeploymentTargetRule diff --git a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileHeaderConfiguration.swift b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileHeaderConfiguration.swift index dd86cbab1..8bdd52332 100644 --- a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileHeaderConfiguration.swift +++ b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileHeaderConfiguration.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftLintCore struct FileHeaderConfiguration: SeverityBasedRuleConfiguration { diff --git a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileNameConfiguration.swift b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileNameConfiguration.swift index 1dca2b089..8e485fc86 100644 --- a/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileNameConfiguration.swift +++ b/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/FileNameConfiguration.swift @@ -1,3 +1,5 @@ +import Foundation +import SourceKittenFramework import SwiftLintCore @AutoConfigParser diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/ClosureEndIndentationRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/ClosureEndIndentationRule.swift index 00d9963bd..45071a796 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/ClosureEndIndentationRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/ClosureEndIndentationRule.swift @@ -1,3 +1,4 @@ +import SourceKittenFramework import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/ContrastedOpeningBraceRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/ContrastedOpeningBraceRule.swift index c1635796f..bb3e62b6e 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/ContrastedOpeningBraceRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/ContrastedOpeningBraceRule.swift @@ -1,3 +1,5 @@ +import Foundation +import SourceKittenFramework import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/InclusiveLanguageRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/InclusiveLanguageRule.swift index 28dc3a7fc..da79e70c4 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/InclusiveLanguageRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/InclusiveLanguageRule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax @SwiftSyntaxRule diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/OpeningBraceRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/OpeningBraceRule.swift index 01715915e..88b20cb3e 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/OpeningBraceRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/OpeningBraceRule.swift @@ -1,3 +1,5 @@ +import Foundation +import SourceKittenFramework import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/PreferSelfTypeOverTypeOfSelfRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/PreferSelfTypeOverTypeOfSelfRule.swift index e36f25f4e..312cefda1 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/PreferSelfTypeOverTypeOfSelfRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/PreferSelfTypeOverTypeOfSelfRule.swift @@ -1,4 +1,5 @@ import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true, optIn: true) struct PreferSelfTypeOverTypeOfSelfRule: Rule { diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/SortedEnumCasesRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/SortedEnumCasesRule.swift index f35edea7f..024552741 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/SortedEnumCasesRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/SortedEnumCasesRule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax @SwiftSyntaxRule(optIn: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/SortedImportsRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/SortedImportsRule.swift index 1371b8ef5..2d8b6b4ba 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/SortedImportsRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/SortedImportsRule.swift @@ -1,3 +1,5 @@ +import Foundation +import SourceKittenFramework import SwiftSyntax @SwiftSyntaxRule(explicitRewriter: true, optIn: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/SuperfluousElseRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/SuperfluousElseRule.swift index e641aed71..cc63b2bf5 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/SuperfluousElseRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/SuperfluousElseRule.swift @@ -1,3 +1,4 @@ +import SwiftBasicFormat import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/TrailingCommaRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/TrailingCommaRule.swift index 91ebcec4b..47d3a6829 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/TrailingCommaRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/TrailingCommaRule.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax @SwiftSyntaxRule(explicitRewriter: true) diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/TrailingWhitespaceRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/TrailingWhitespaceRule.swift index fe0ef2b8a..81cc4201c 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/TrailingWhitespaceRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/TrailingWhitespaceRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftLintCore import SwiftSyntax diff --git a/Source/SwiftLintBuiltInRules/Rules/Style/VoidReturnRule.swift b/Source/SwiftLintBuiltInRules/Rules/Style/VoidReturnRule.swift index 1bc9e997a..79981a7e1 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Style/VoidReturnRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Style/VoidReturnRule.swift @@ -1,5 +1,6 @@ import SwiftLintCore import SwiftSyntax +import SwiftSyntaxBuilder @SwiftSyntaxRule(explicitRewriter: true) struct VoidReturnRule: Rule { diff --git a/Source/SwiftLintCore/Extensions/QueuedPrint.swift b/Source/SwiftLintCore/Extensions/QueuedPrint.swift index 4c8d12700..56f82bbb0 100644 --- a/Source/SwiftLintCore/Extensions/QueuedPrint.swift +++ b/Source/SwiftLintCore/Extensions/QueuedPrint.swift @@ -1,5 +1,6 @@ @preconcurrency import Dispatch @preconcurrency import Foundation +import SourceKittenFramework private let outputQueue: DispatchQueue = { let queue = DispatchQueue( diff --git a/Source/SwiftLintCore/Extensions/SourceKittenDictionary+Swiftlint.swift b/Source/SwiftLintCore/Extensions/SourceKittenDictionary+Swiftlint.swift index edfd2c849..7bf64794b 100644 --- a/Source/SwiftLintCore/Extensions/SourceKittenDictionary+Swiftlint.swift +++ b/Source/SwiftLintCore/Extensions/SourceKittenDictionary+Swiftlint.swift @@ -1,3 +1,4 @@ +import Foundation import SourceKittenFramework public extension SourceKittenDictionary { diff --git a/Source/SwiftLintCore/Extensions/SwiftLintFile+Cache.swift b/Source/SwiftLintCore/Extensions/SwiftLintFile+Cache.swift index c48b0a417..7e4b45e09 100644 --- a/Source/SwiftLintCore/Extensions/SwiftLintFile+Cache.swift +++ b/Source/SwiftLintCore/Extensions/SwiftLintFile+Cache.swift @@ -3,6 +3,7 @@ import Darwin #endif import Foundation import SourceKittenFramework +import SwiftDiagnostics import SwiftIDEUtils import SwiftOperators import SwiftParser diff --git a/Source/SwiftLintCore/Extensions/SwiftSyntax+SwiftLint.swift b/Source/SwiftLintCore/Extensions/SwiftSyntax+SwiftLint.swift index b0e837fb6..0a8bb9c83 100644 --- a/Source/SwiftLintCore/Extensions/SwiftSyntax+SwiftLint.swift +++ b/Source/SwiftLintCore/Extensions/SwiftSyntax+SwiftLint.swift @@ -1,3 +1,4 @@ +import Foundation import SourceKittenFramework import SwiftSyntax @@ -194,7 +195,7 @@ public extension EnumDeclSyntax { } } - /// True if this enum is a `CodingKey`. For that, it has to be named `CodingKeys` + /// True if this enum is a `CodingKey`. For that, it has to be named `CodingKeys` /// and must conform to the `CodingKey` protocol. var definesCodingKeys: Bool { guard let inheritedTypeCollection = inheritanceClause?.inheritedTypes, diff --git a/Source/SwiftLintCore/Models/Example.swift b/Source/SwiftLintCore/Models/Example.swift index a91d02319..cc9e46737 100644 --- a/Source/SwiftLintCore/Models/Example.swift +++ b/Source/SwiftLintCore/Models/Example.swift @@ -1,3 +1,5 @@ +import Foundation + /// Captures code and context information for an example of a triggering or /// non-triggering style public struct Example: Sendable { diff --git a/Source/SwiftLintCore/Models/RuleDescription.swift b/Source/SwiftLintCore/Models/RuleDescription.swift index 7dc528f68..4139f38f3 100644 --- a/Source/SwiftLintCore/Models/RuleDescription.swift +++ b/Source/SwiftLintCore/Models/RuleDescription.swift @@ -1,3 +1,5 @@ +import Foundation + /// A detailed description for a SwiftLint rule. Used for both documentation and testing purposes. public struct RuleDescription: Equatable, Sendable { /// The rule's unique identifier, to be used in configuration files and SwiftLint commands. diff --git a/Source/SwiftLintCore/Models/StyleViolation.swift b/Source/SwiftLintCore/Models/StyleViolation.swift index 3defc96fe..726673a67 100644 --- a/Source/SwiftLintCore/Models/StyleViolation.swift +++ b/Source/SwiftLintCore/Models/StyleViolation.swift @@ -1,3 +1,6 @@ +import Foundation +import SourceKittenFramework + /// A value describing an instance of Swift source code that is considered invalid by a SwiftLint rule. public struct StyleViolation: CustomStringConvertible, Codable, Hashable { /// The identifier of the rule that generated this violation. diff --git a/Source/SwiftLintCore/Protocols/SwiftSyntaxCorrectableRule.swift b/Source/SwiftLintCore/Protocols/SwiftSyntaxCorrectableRule.swift index 85eb3a936..727fd97d5 100644 --- a/Source/SwiftLintCore/Protocols/SwiftSyntaxCorrectableRule.swift +++ b/Source/SwiftLintCore/Protocols/SwiftSyntaxCorrectableRule.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework import SwiftSyntax /// A SwiftLint CorrectableRule that performs its corrections using a SwiftSyntax `SyntaxRewriter`. diff --git a/Source/SwiftLintCore/Visitors/CommandVisitor.swift b/Source/SwiftLintCore/Visitors/CommandVisitor.swift index 530fdf492..857e54971 100644 --- a/Source/SwiftLintCore/Visitors/CommandVisitor.swift +++ b/Source/SwiftLintCore/Visitors/CommandVisitor.swift @@ -1,3 +1,4 @@ +import Foundation import SwiftSyntax // MARK: - CommandVisitor diff --git a/Source/SwiftLintCoreMacros/TemporaryDirectory.swift b/Source/SwiftLintCoreMacros/TemporaryDirectory.swift index b0f6079b8..d7022f561 100644 --- a/Source/SwiftLintCoreMacros/TemporaryDirectory.swift +++ b/Source/SwiftLintCoreMacros/TemporaryDirectory.swift @@ -1,4 +1,5 @@ import SwiftSyntax +import SwiftSyntaxBuilder import SwiftSyntaxMacros #if os(macOS) diff --git a/Source/SwiftLintCoreMacros/WorkingDirectory.swift b/Source/SwiftLintCoreMacros/WorkingDirectory.swift index 15a412513..94d89fed3 100644 --- a/Source/SwiftLintCoreMacros/WorkingDirectory.swift +++ b/Source/SwiftLintCoreMacros/WorkingDirectory.swift @@ -1,4 +1,5 @@ import SwiftSyntax +import SwiftSyntaxBuilder import SwiftSyntaxMacros enum WorkingDirectory: BodyMacro { diff --git a/Source/SwiftLintFramework/Configuration/Configuration+FileGraphSubtypes.swift b/Source/SwiftLintFramework/Configuration/Configuration+FileGraphSubtypes.swift index 584a78c27..997680eb9 100644 --- a/Source/SwiftLintFramework/Configuration/Configuration+FileGraphSubtypes.swift +++ b/Source/SwiftLintFramework/Configuration/Configuration+FileGraphSubtypes.swift @@ -1,4 +1,5 @@ import Foundation // swiftlint:disable:this file_name +import SourceKittenFramework internal extension Configuration.FileGraph { // MARK: - FilePath diff --git a/Source/SwiftLintFramework/Configuration/Configuration+Remote.swift b/Source/SwiftLintFramework/Configuration/Configuration+Remote.swift index 74f3779f0..c083290c8 100644 --- a/Source/SwiftLintFramework/Configuration/Configuration+Remote.swift +++ b/Source/SwiftLintFramework/Configuration/Configuration+Remote.swift @@ -1,4 +1,5 @@ import Foundation // swiftlint:disable:this file_name +import SourceKittenFramework #if canImport(FoundationNetworking) import FoundationNetworking diff --git a/Source/SwiftLintFramework/Extensions/FileManager+SwiftLint.swift b/Source/SwiftLintFramework/Extensions/FileManager+SwiftLint.swift index f76ca676f..31280a08e 100644 --- a/Source/SwiftLintFramework/Extensions/FileManager+SwiftLint.swift +++ b/Source/SwiftLintFramework/Extensions/FileManager+SwiftLint.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework /// An interface for enumerating files that can be linted by SwiftLint. public protocol LintableFileManager { diff --git a/Source/SwiftLintFramework/Extensions/String+XML.swift b/Source/SwiftLintFramework/Extensions/String+XML.swift index bdb486c33..a6d7e490e 100644 --- a/Source/SwiftLintFramework/Extensions/String+XML.swift +++ b/Source/SwiftLintFramework/Extensions/String+XML.swift @@ -1,3 +1,5 @@ +import Foundation + extension String { func escapedForXML() -> String { // & needs to go first, otherwise other replacements will be replaced again diff --git a/Source/SwiftLintFramework/Helpers/Glob.swift b/Source/SwiftLintFramework/Helpers/Glob.swift index 4ef3cfbac..953819fd1 100644 --- a/Source/SwiftLintFramework/Helpers/Glob.swift +++ b/Source/SwiftLintFramework/Helpers/Glob.swift @@ -1,4 +1,5 @@ import Foundation +import SourceKittenFramework #if os(Linux) #if canImport(Glibc) diff --git a/Source/SwiftLintFramework/Reporters/JUnitReporter.swift b/Source/SwiftLintFramework/Reporters/JUnitReporter.swift index 1ea0f122e..9fb1f73a7 100644 --- a/Source/SwiftLintFramework/Reporters/JUnitReporter.swift +++ b/Source/SwiftLintFramework/Reporters/JUnitReporter.swift @@ -1,3 +1,5 @@ +import Foundation + /// Reports violations as JUnit XML. struct JUnitReporter: Reporter { // MARK: - Reporter Conformance diff --git a/Source/swiftlint-dev/Reporters+Register.swift b/Source/swiftlint-dev/Reporters+Register.swift index ed4fe57cd..adb181dc3 100644 --- a/Source/swiftlint-dev/Reporters+Register.swift +++ b/Source/swiftlint-dev/Reporters+Register.swift @@ -1,5 +1,6 @@ import ArgumentParser import Foundation +import SwiftLintCore extension SwiftLintDev.Reporters { struct Register: AsyncParsableCommand { diff --git a/Source/swiftlint/Common/LintOrAnalyzeArguments.swift b/Source/swiftlint/Common/LintOrAnalyzeArguments.swift index e956dd13b..b47e4162a 100644 --- a/Source/swiftlint/Common/LintOrAnalyzeArguments.swift +++ b/Source/swiftlint/Common/LintOrAnalyzeArguments.swift @@ -1,4 +1,5 @@ import ArgumentParser +import Foundation import SwiftLintFramework enum LeniencyOptions: String, EnumerableFlag { diff --git a/Tests/BuiltInRulesTests/NumberSeparatorRuleTests.swift b/Tests/BuiltInRulesTests/NumberSeparatorRuleTests.swift index 362e55ce4..1420ed906 100644 --- a/Tests/BuiltInRulesTests/NumberSeparatorRuleTests.swift +++ b/Tests/BuiltInRulesTests/NumberSeparatorRuleTests.swift @@ -1,8 +1,10 @@ -@testable import SwiftLintBuiltInRules import SwiftParser +import SwiftSyntax import TestHelpers import XCTest +@testable import SwiftLintBuiltInRules + final class NumberSeparatorRuleTests: SwiftLintTestCase { func testNumberSeparatorWithMinimumLength() { let nonTriggeringExamples = [ diff --git a/Tests/CoreTests/CommentLinesVisitorTests.swift b/Tests/CoreTests/CommentLinesVisitorTests.swift index 4a5298134..01f4d68e0 100644 --- a/Tests/CoreTests/CommentLinesVisitorTests.swift +++ b/Tests/CoreTests/CommentLinesVisitorTests.swift @@ -1,6 +1,8 @@ -@testable import SwiftLintCore +import SwiftSyntax import XCTest +@testable import SwiftLintCore + final class CommentLinesVisitorTests: XCTestCase { func testEmptyFile() { XCTAssertEqual(commentOnlyLines(in: ""), []) diff --git a/Tests/CoreTests/ExtendedStringTests.swift b/Tests/CoreTests/ExtendedStringTests.swift index 16c28ca70..b2426ec3c 100644 --- a/Tests/CoreTests/ExtendedStringTests.swift +++ b/Tests/CoreTests/ExtendedStringTests.swift @@ -1,3 +1,4 @@ +import SwiftLintCore import TestHelpers import XCTest diff --git a/Tests/CoreTests/StringExtensionTests.swift b/Tests/CoreTests/StringExtensionTests.swift index 8a093fac6..1f744899a 100644 --- a/Tests/CoreTests/StringExtensionTests.swift +++ b/Tests/CoreTests/StringExtensionTests.swift @@ -1,3 +1,4 @@ +import SwiftLintCore import TestHelpers import XCTest diff --git a/Tests/CoreTests/SwiftLintFileTests.swift b/Tests/CoreTests/SwiftLintFileTests.swift index e08ee5175..bff4ada92 100644 --- a/Tests/CoreTests/SwiftLintFileTests.swift +++ b/Tests/CoreTests/SwiftLintFileTests.swift @@ -1,7 +1,9 @@ -@testable import SwiftLintCore +import SwiftLintFramework import TestHelpers import XCTest +@testable import SwiftLintCore + final class SwiftLintFileTests: SwiftLintTestCase { private let tempFile = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) diff --git a/Tests/FileSystemAccessTests/BaselineTests.swift b/Tests/FileSystemAccessTests/BaselineTests.swift index cbaef347d..138f3b501 100644 --- a/Tests/FileSystemAccessTests/BaselineTests.swift +++ b/Tests/FileSystemAccessTests/BaselineTests.swift @@ -1,6 +1,7 @@ -@testable import SwiftLintBuiltInRules +import TestHelpers import XCTest +@testable import SwiftLintBuiltInRules @testable import SwiftLintCore private var temporaryDirectoryPath: String { diff --git a/Tests/FrameworkTests/CollectingRuleTests.swift b/Tests/FrameworkTests/CollectingRuleTests.swift index 7e87dc344..4ab7b6a90 100644 --- a/Tests/FrameworkTests/CollectingRuleTests.swift +++ b/Tests/FrameworkTests/CollectingRuleTests.swift @@ -1,7 +1,9 @@ -@testable import SwiftLintFramework +import SwiftLintFramework import TestHelpers import XCTest +@testable import SourceKittenFramework + final class CollectingRuleTests: SwiftLintTestCase { func testCollectsIntoStorage() { struct Spec: MockCollectingRule { diff --git a/Tests/FrameworkTests/StringViewExtensionTests.swift b/Tests/FrameworkTests/StringViewExtensionTests.swift index ad7c1b176..9d43c3a15 100644 --- a/Tests/FrameworkTests/StringViewExtensionTests.swift +++ b/Tests/FrameworkTests/StringViewExtensionTests.swift @@ -1,4 +1,5 @@ import SourceKittenFramework +import SwiftLintCore import TestHelpers import XCTest diff --git a/Tests/IntegrationTests/IntegrationTests.swift b/Tests/IntegrationTests/IntegrationTests.swift index 0406d0e90..a11faa01e 100644 --- a/Tests/IntegrationTests/IntegrationTests.swift +++ b/Tests/IntegrationTests/IntegrationTests.swift @@ -1,4 +1,6 @@ import Foundation +import SourceKittenFramework +import SwiftLintCore import SwiftLintFramework import TestHelpers import XCTest diff --git a/Tests/TestHelpers/TestResources.swift b/Tests/TestHelpers/TestResources.swift index 69de7e6a5..58a7f13bb 100644 --- a/Tests/TestHelpers/TestResources.swift +++ b/Tests/TestHelpers/TestResources.swift @@ -1,4 +1,5 @@ import Foundation +import SwiftLintCore public enum TestResources { public static func path(_ calleePath: String = #filePath) -> String { diff --git a/bazel/copts.bzl b/bazel/copts.bzl index 71c90a39f..b89a81a54 100644 --- a/bazel/copts.bzl +++ b/bazel/copts.bzl @@ -19,6 +19,8 @@ COPTS = [ "InferIsolatedConformances", "-enable-upcoming-feature", "InferSendableFromCaptures", + "-enable-upcoming-feature", + "MemberImportVisibility", "-Xfrontend", "-warn-implicit-overrides", ]