From 1ee5154687c06aaec25e86d95a55e095aeebe9bb Mon Sep 17 00:00:00 2001 From: JP Simard Date: Sun, 23 Oct 2022 11:56:22 -0400 Subject: [PATCH] Update SwiftSyntax to `fa7ff05` (#4455) There's a new SwiftParserDiagnostics module and the rewriter visit function signatures changed. --- Package.resolved | 2 +- Package.swift | 2 +- .../Extensions/SwiftLintFile+Cache.swift | 1 + .../Idiomatic/RedundantNilCoalescingRule.swift | 2 +- .../Idiomatic/ShorthandOptionalBindingRule.swift | 2 +- .../Rules/Idiomatic/ToggleBoolRule.swift | 2 +- .../Rules/Idiomatic/UntypedErrorInCatchRule.swift | 2 +- .../Rules/Lint/AnyObjectProtocolRule.swift | 2 +- .../Rules/Lint/LowerACLThanParentRule.swift | 2 +- .../Rules/Style/ClosureSpacingRule.swift | 2 +- .../Rules/Style/EmptyEnumArgumentsRule.swift | 8 ++++---- .../Style/ProtocolPropertyAccessorsOrderRule.swift | 2 +- .../Rules/Style/SelfBindingRule.swift | 2 +- .../Rules/Style/TrailingCommaRule.swift | 4 ++-- .../UnneededParenthesesInClosureArgumentRule.swift | 2 +- bazel/SwiftSyntax.BUILD | 14 ++++++++++++++ bazel/repos.bzl | 6 +++--- 17 files changed, 36 insertions(+), 21 deletions(-) diff --git a/Package.resolved b/Package.resolved index 8492b9b0b0..f93dbb74fd 100644 --- a/Package.resolved +++ b/Package.resolved @@ -33,7 +33,7 @@ "repositoryURL": "https://github.com/apple/swift-syntax.git", "state": { "branch": null, - "revision": "60c7037405b3e0ecc4d42805bc46dbcbb947afc0", + "revision": "fa7ff05591294db031e3061e704994aa3b89d1bc", "version": null } }, diff --git a/Package.swift b/Package.swift index 460e7e27b2..610ca80827 100644 --- a/Package.swift +++ b/Package.swift @@ -27,7 +27,7 @@ let package = Package( ], dependencies: [ .package(name: "swift-argument-parser", url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "1.1.3")), - .package(name: "SwiftSyntax", url: "https://github.com/apple/swift-syntax.git", .revision("60c7037405b3e0ecc4d42805bc46dbcbb947afc0")), + .package(name: "SwiftSyntax", url: "https://github.com/apple/swift-syntax.git", .revision("fa7ff05591294db031e3061e704994aa3b89d1bc")), .package(url: "https://github.com/jpsim/SourceKitten.git", .revision("a9e6df65d8e31e0fa6e8a05ffe40ecd54a645871")), .package(url: "https://github.com/jpsim/Yams.git", from: "5.0.1"), .package(url: "https://github.com/scottrhoyt/SwiftyTextTable.git", from: "0.9.0"), diff --git a/Source/SwiftLintFramework/Extensions/SwiftLintFile+Cache.swift b/Source/SwiftLintFramework/Extensions/SwiftLintFile+Cache.swift index f13ec0c37f..4fb16d978d 100644 --- a/Source/SwiftLintFramework/Extensions/SwiftLintFile+Cache.swift +++ b/Source/SwiftLintFramework/Extensions/SwiftLintFile+Cache.swift @@ -4,6 +4,7 @@ import Darwin import Foundation import SourceKittenFramework import SwiftParser +import SwiftParserDiagnostics import SwiftSyntax private typealias FileCacheKey = UUID diff --git a/Source/SwiftLintFramework/Rules/Idiomatic/RedundantNilCoalescingRule.swift b/Source/SwiftLintFramework/Rules/Idiomatic/RedundantNilCoalescingRule.swift index 291d06967b..b16bed9d0d 100644 --- a/Source/SwiftLintFramework/Rules/Idiomatic/RedundantNilCoalescingRule.swift +++ b/Source/SwiftLintFramework/Rules/Idiomatic/RedundantNilCoalescingRule.swift @@ -54,7 +54,7 @@ private extension RedundantNilCoalescingRule { self.disabledRegions = disabledRegions } - override func visit(_ node: ExprListSyntax) -> Syntax { + override func visit(_ node: ExprListSyntax) -> ExprListSyntax { guard node.count > 2, let lastExpression = node.last, diff --git a/Source/SwiftLintFramework/Rules/Idiomatic/ShorthandOptionalBindingRule.swift b/Source/SwiftLintFramework/Rules/Idiomatic/ShorthandOptionalBindingRule.swift index b6b3674a92..26d1eb0f5b 100644 --- a/Source/SwiftLintFramework/Rules/Idiomatic/ShorthandOptionalBindingRule.swift +++ b/Source/SwiftLintFramework/Rules/Idiomatic/ShorthandOptionalBindingRule.swift @@ -111,7 +111,7 @@ private class Rewriter: SyntaxRewriter, ViolationsSyntaxRewriter { self.disabledRegions = disabledRegions } - override func visit(_ node: OptionalBindingConditionSyntax) -> Syntax { + override func visit(_ node: OptionalBindingConditionSyntax) -> OptionalBindingConditionSyntax { guard node.isShadowingOptionalBinding, !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) diff --git a/Source/SwiftLintFramework/Rules/Idiomatic/ToggleBoolRule.swift b/Source/SwiftLintFramework/Rules/Idiomatic/ToggleBoolRule.swift index c80a9614ec..45a21b2016 100644 --- a/Source/SwiftLintFramework/Rules/Idiomatic/ToggleBoolRule.swift +++ b/Source/SwiftLintFramework/Rules/Idiomatic/ToggleBoolRule.swift @@ -62,7 +62,7 @@ private extension ToggleBoolRule { self.disabledRegions = disabledRegions } - override func visit(_ node: ExprListSyntax) -> Syntax { + override func visit(_ node: ExprListSyntax) -> ExprListSyntax { guard node.hasToggleBoolViolation, !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) diff --git a/Source/SwiftLintFramework/Rules/Idiomatic/UntypedErrorInCatchRule.swift b/Source/SwiftLintFramework/Rules/Idiomatic/UntypedErrorInCatchRule.swift index 8d4d6c4391..74d69b1301 100644 --- a/Source/SwiftLintFramework/Rules/Idiomatic/UntypedErrorInCatchRule.swift +++ b/Source/SwiftLintFramework/Rules/Idiomatic/UntypedErrorInCatchRule.swift @@ -144,7 +144,7 @@ private final class UntypedErrorInCatchRuleRewriter: SyntaxRewriter, ViolationsS self.disabledRegions = disabledRegions } - override func visit(_ node: CatchClauseSyntax) -> Syntax { + override func visit(_ node: CatchClauseSyntax) -> CatchClauseSyntax { guard node.catchItems?.count == 1, let item = node.catchItems?.first, diff --git a/Source/SwiftLintFramework/Rules/Lint/AnyObjectProtocolRule.swift b/Source/SwiftLintFramework/Rules/Lint/AnyObjectProtocolRule.swift index 11cbf2b142..5b2addf0b7 100644 --- a/Source/SwiftLintFramework/Rules/Lint/AnyObjectProtocolRule.swift +++ b/Source/SwiftLintFramework/Rules/Lint/AnyObjectProtocolRule.swift @@ -72,7 +72,7 @@ private extension AnyObjectProtocolRule { self.disabledRegions = disabledRegions } - override func visit(_ node: InheritedTypeSyntax) -> Syntax { + override func visit(_ node: InheritedTypeSyntax) -> InheritedTypeSyntax { let typeName = node.typeName guard typeName.is(ClassRestrictionTypeSyntax.self), diff --git a/Source/SwiftLintFramework/Rules/Lint/LowerACLThanParentRule.swift b/Source/SwiftLintFramework/Rules/Lint/LowerACLThanParentRule.swift index 2fe1123992..4364005ce5 100644 --- a/Source/SwiftLintFramework/Rules/Lint/LowerACLThanParentRule.swift +++ b/Source/SwiftLintFramework/Rules/Lint/LowerACLThanParentRule.swift @@ -87,7 +87,7 @@ private extension LowerACLThanParentRule { self.disabledRegions = disabledRegions } - override func visit(_ node: DeclModifierSyntax) -> Syntax { + override func visit(_ node: DeclModifierSyntax) -> DeclModifierSyntax { guard node.isHigherACLThanParent, !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) diff --git a/Source/SwiftLintFramework/Rules/Style/ClosureSpacingRule.swift b/Source/SwiftLintFramework/Rules/Style/ClosureSpacingRule.swift index c854e0e5b0..2134194b6e 100644 --- a/Source/SwiftLintFramework/Rules/Style/ClosureSpacingRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/ClosureSpacingRule.swift @@ -82,7 +82,7 @@ private final class ClosureSpacingRuleRewriter: SyntaxRewriter, ViolationsSyntax override func visit(_ node: ClosureExprSyntax) -> ExprSyntax { var node = node - node.statements = visit(node.statements).as(CodeBlockItemListSyntax.self)! + node.statements = visit(node.statements) guard !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter), diff --git a/Source/SwiftLintFramework/Rules/Style/EmptyEnumArgumentsRule.swift b/Source/SwiftLintFramework/Rules/Style/EmptyEnumArgumentsRule.swift index 3172ed643b..d8d025a913 100644 --- a/Source/SwiftLintFramework/Rules/Style/EmptyEnumArgumentsRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/EmptyEnumArgumentsRule.swift @@ -144,7 +144,7 @@ private extension EmptyEnumArgumentsRule { self.disabledRegions = disabledRegions } - override func visit(_ node: CaseItemSyntax) -> Syntax { + override func visit(_ node: CaseItemSyntax) -> CaseItemSyntax { guard let (violationPosition, newPattern) = node.pattern.emptyEnumArgumentsViolation(rewrite: true), !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) @@ -153,10 +153,10 @@ private extension EmptyEnumArgumentsRule { } correctionPositions.append(violationPosition) - return super.visit(Syntax(node.withPattern(newPattern))) + return super.visit(node.withPattern(newPattern)) } - override func visit(_ node: MatchingPatternConditionSyntax) -> Syntax { + override func visit(_ node: MatchingPatternConditionSyntax) -> MatchingPatternConditionSyntax { guard let (violationPosition, newPattern) = node.pattern.emptyEnumArgumentsViolation(rewrite: true), !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) @@ -165,7 +165,7 @@ private extension EmptyEnumArgumentsRule { } correctionPositions.append(violationPosition) - return super.visit(Syntax(node.withPattern(newPattern))) + return super.visit(node.withPattern(newPattern)) } } } diff --git a/Source/SwiftLintFramework/Rules/Style/ProtocolPropertyAccessorsOrderRule.swift b/Source/SwiftLintFramework/Rules/Style/ProtocolPropertyAccessorsOrderRule.swift index d4fa9e15ec..6ee19801ba 100644 --- a/Source/SwiftLintFramework/Rules/Style/ProtocolPropertyAccessorsOrderRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/ProtocolPropertyAccessorsOrderRule.swift @@ -61,7 +61,7 @@ private extension ProtocolPropertyAccessorsOrderRule { self.disabledRegions = disabledRegions } - override func visit(_ node: AccessorBlockSyntax) -> Syntax { + override func visit(_ node: AccessorBlockSyntax) -> AccessorBlockSyntax { guard node.hasViolation, !node.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) diff --git a/Source/SwiftLintFramework/Rules/Style/SelfBindingRule.swift b/Source/SwiftLintFramework/Rules/Style/SelfBindingRule.swift index 746e02b121..caedbf84d4 100644 --- a/Source/SwiftLintFramework/Rules/Style/SelfBindingRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/SelfBindingRule.swift @@ -94,7 +94,7 @@ private final class SelfBindingRuleRewriter: SyntaxRewriter, ViolationsSyntaxRew self.disabledRegions = disabledRegions } - override func visit(_ node: OptionalBindingConditionSyntax) -> Syntax { + override func visit(_ node: OptionalBindingConditionSyntax) -> OptionalBindingConditionSyntax { guard let identifierPattern = node.pattern.as(IdentifierPatternSyntax.self), identifierPattern.identifier.text != bindIdentifier, diff --git a/Source/SwiftLintFramework/Rules/Style/TrailingCommaRule.swift b/Source/SwiftLintFramework/Rules/Style/TrailingCommaRule.swift index ee009bd451..673eb73099 100644 --- a/Source/SwiftLintFramework/Rules/Style/TrailingCommaRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/TrailingCommaRule.swift @@ -126,7 +126,7 @@ private extension TrailingCommaRule { self.disabledRegions = disabledRegions } - override func visit(_ node: DictionaryElementListSyntax) -> Syntax { + override func visit(_ node: DictionaryElementListSyntax) -> DictionaryElementListSyntax { guard let lastElement = node.last, !lastElement.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) else { return super.visit(node) @@ -163,7 +163,7 @@ private extension TrailingCommaRule { } } - override func visit(_ node: ArrayElementListSyntax) -> Syntax { + override func visit(_ node: ArrayElementListSyntax) -> ArrayElementListSyntax { guard let lastElement = node.last, !lastElement.isContainedIn(regions: disabledRegions, locationConverter: locationConverter) else { return super.visit(node) diff --git a/Source/SwiftLintFramework/Rules/Style/UnneededParenthesesInClosureArgumentRule.swift b/Source/SwiftLintFramework/Rules/Style/UnneededParenthesesInClosureArgumentRule.swift index bb97bf8b5f..09137425d2 100644 --- a/Source/SwiftLintFramework/Rules/Style/UnneededParenthesesInClosureArgumentRule.swift +++ b/Source/SwiftLintFramework/Rules/Style/UnneededParenthesesInClosureArgumentRule.swift @@ -109,7 +109,7 @@ private final class Rewriter: SyntaxRewriter, ViolationsSyntaxRewriter { self.disabledRegions = disabledRegions } - override func visit(_ node: ClosureSignatureSyntax) -> Syntax { + override func visit(_ node: ClosureSignatureSyntax) -> ClosureSignatureSyntax { guard let clause = node.input?.as(ParameterClauseSyntax.self), !clause.parameterList.contains(where: { $0.type != nil }), diff --git a/bazel/SwiftSyntax.BUILD b/bazel/SwiftSyntax.BUILD index e3e2844516..bec5f250c5 100644 --- a/bazel/SwiftSyntax.BUILD +++ b/bazel/SwiftSyntax.BUILD @@ -48,6 +48,7 @@ swift_library( deps = [ ":SwiftBasicFormat", ":SwiftParser", + ":SwiftParserDiagnostics", ":SwiftSyntax", ], ) @@ -63,12 +64,25 @@ swift_library( ], ) +swift_library( + name = "SwiftParserDiagnostics", + srcs = glob(["Sources/SwiftParserDiagnostics/**/*.swift"]), + module_name = "SwiftParserDiagnostics", + deps = [ + ":SwiftBasicFormat", + ":SwiftDiagnostics", + ":SwiftParser", + ":SwiftSyntax", + ], +) + opt_wrapper( name = "optlibs", visibility = ["//visibility:public"], deps = [ ":SwiftOperators", ":SwiftParser", + ":SwiftParserDiagnostics", ":SwiftSyntax", ":SwiftSyntaxBuilder", ], diff --git a/bazel/repos.bzl b/bazel/repos.bzl index 4c1ef8fcb0..c26421bd13 100644 --- a/bazel/repos.bzl +++ b/bazel/repos.bzl @@ -20,10 +20,10 @@ def swiftlint_repos(): http_archive( name = "com_github_apple_swift_syntax", - sha256 = "a4b0527ff3d0f4d002c85b246fde52552d2cfbbfa2329a298a2ee44aa66ded9a", + sha256 = "6962cd269321a23a2e4b3738a870afe30b2c99dfb48f53b9898bdab4e2a8d4d7", build_file = "@SwiftLint//bazel:SwiftSyntax.BUILD", - strip_prefix = "swift-syntax-60c7037405b3e0ecc4d42805bc46dbcbb947afc0", - url = "https://github.com/apple/swift-syntax/archive/60c7037405b3e0ecc4d42805bc46dbcbb947afc0.tar.gz", + strip_prefix = "swift-syntax-fa7ff05591294db031e3061e704994aa3b89d1bc", + url = "https://github.com/apple/swift-syntax/archive/fa7ff05591294db031e3061e704994aa3b89d1bc.tar.gz", ) http_archive(