Skip to content

Commit

Permalink
Update SwiftSyntax to 04-10 snapshot (realm#4887)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpsim authored Apr 13, 2023
1 parent 409f117 commit 70a56a1
Show file tree
Hide file tree
Showing 34 changed files with 79 additions and 96 deletions.
4 changes: 2 additions & 2 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-syntax.git",
"state" : {
"revision" : "07c08da983b2815a0acc8e3a477573e4c663b158",
"version" : "509.0.0-swift-DEVELOPMENT-SNAPSHOT-2023-03-17-a"
"revision" : "2a9988f32c3439b1c850673cfccb085ddcde1395",
"version" : "509.0.0-swift-5.9-DEVELOPMENT-SNAPSHOT-2023-04-10-a"
}
},
{
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ let package = Package(
],
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "1.2.1")),
.package(url: "https://github.com/apple/swift-syntax.git", exact: "509.0.0-swift-DEVELOPMENT-SNAPSHOT-2023-03-17-a"),
.package(url: "https://github.com/apple/swift-syntax.git", exact: "509.0.0-swift-5.9-DEVELOPMENT-SNAPSHOT-2023-04-10-a"),
.package(url: "https://github.com/jpsim/SourceKitten.git", .upToNextMinor(from: "0.34.1")),
.package(url: "https://github.com/jpsim/Yams.git", from: "5.0.5"),
.package(url: "https://github.com/scottrhoyt/SwiftyTextTable.git", from: "0.9.0"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ extension FunctionDeclSyntax {
name += "("

let params = signature.input.parameterList.compactMap { param in
(param.firstName ?? param.secondName)?.text.appending(":")
param.firstName.text.appending(":")
}

name += params.joined()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ extension SyntaxClassification {
return true
case .none, .keyword, .identifier, .typeIdentifier, .operatorIdentifier, .dollarIdentifier, .integerLiteral,
.floatingLiteral, .stringLiteral, .stringInterpolationAnchor, .poundDirectiveKeyword, .buildConfigId,
.attribute, .objectLiteral, .editorPlaceholder:
.attribute, .objectLiteral, .editorPlaceholder, .regexLiteral:
return false
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ enum LegacyFunctionRuleHelper {
}

return expr
.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
.with(\.trailingTrivia, node.trailingTrivia ?? .zero)
.with(\.leadingTrivia, node.leadingTrivia)
.with(\.trailingTrivia, node.trailingTrivia)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ private extension BlockBasedKVORule {
case let parameterList = node.signature.input.parameterList,
parameterList.count == 4,
node.identifier.text == "observeValue",
parameterList.compactMap(\.firstName?.text) == ["forKeyPath", "of", "change", "context"]
parameterList.map(\.firstName.text) == ["forKeyPath", "of", "change", "context"]
else {
return
}

let types = parameterList
.compactMap { $0.type?.trimmedDescription.replacingOccurrences(of: " ", with: "") }
.map { $0.type.trimmedDescription.replacingOccurrences(of: " ", with: "") }
let firstTypes = ["String?", "Any?", "[NSKeyValueChangeKey:Any]?", "UnsafeMutableRawPointer?"]
let secondTypes = ["String?", "Any?", "Dictionary<NSKeyValueChangeKey,Any>?", "UnsafeMutableRawPointer?"]
if types == firstTypes || types == secondTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,28 +104,28 @@ private extension FunctionSignatureSyntax {

private extension FunctionParameterSyntax {
var isClosure: Bool {
if isEscaping || type?.as(FunctionTypeSyntax.self) != nil {
if isEscaping || type.is(FunctionTypeSyntax.self) {
return true
}

if let optionalType = type?.as(OptionalTypeSyntax.self),
if let optionalType = type.as(OptionalTypeSyntax.self),
let tuple = optionalType.wrappedType.as(TupleTypeSyntax.self) {
return tuple.elements.onlyElement?.type.as(FunctionTypeSyntax.self) != nil
}

if let tuple = type?.as(TupleTypeSyntax.self) {
if let tuple = type.as(TupleTypeSyntax.self) {
return tuple.elements.onlyElement?.type.as(FunctionTypeSyntax.self) != nil
}

if let attrType = type?.as(AttributedTypeSyntax.self) {
if let attrType = type.as(AttributedTypeSyntax.self) {
return attrType.baseType.is(FunctionTypeSyntax.self)
}

return false
}

var isEscaping: Bool {
guard let attrType = type?.as(AttributedTypeSyntax.self) else {
guard let attrType = type.as(AttributedTypeSyntax.self) else {
return false
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ private extension LegacyConstantRule {

correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
return ("\(raw: correction)" as ExprSyntax)
.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
.with(\.trailingTrivia, node.trailingTrivia ?? .zero)
.with(\.leadingTrivia, node.leadingTrivia)
.with(\.trailingTrivia, node.trailingTrivia)
}

override func visit(_ node: FunctionCallExprSyntax) -> ExprSyntax {
Expand All @@ -78,8 +78,8 @@ private extension LegacyConstantRule {

correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
return ("\(raw: calledExpression.identifier.text).pi" as ExprSyntax)
.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
.with(\.trailingTrivia, node.trailingTrivia ?? .zero)
.with(\.leadingTrivia, node.leadingTrivia)
.with(\.trailingTrivia, node.trailingTrivia)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ private extension PreferZeroOverExplicitInitRule {
.with(\.base, "\(raw: name)")
return super.visit(
newNode
.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
.with(\.trailingTrivia, node.trailingTrivia ?? .zero)
.with(\.leadingTrivia, node.leadingTrivia)
.with(\.trailingTrivia, node.trailingTrivia)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,8 +252,8 @@ private extension ModifierListSyntax {
\.name,
.keyword(
.private,
leadingTrivia: fileprivateModifier.leadingTrivia ?? .zero,
trailingTrivia: fileprivateModifier.trailingTrivia ?? .zero
leadingTrivia: fileprivateModifier.leadingTrivia,
trailingTrivia: fileprivateModifier.trailingTrivia
)
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ private extension RedundantOptionalInitializationRule {
return newBinding
}
if binding.trailingComma != nil {
return newBinding.with(\.typeAnnotation, binding.typeAnnotation?.with(\.trailingTrivia, .zero))
return newBinding.with(\.typeAnnotation, binding.typeAnnotation?.with(\.trailingTrivia, Trivia()))
}
return newBinding.with(\.trailingTrivia, binding.initializer?.trailingTrivia ?? .zero)
return newBinding.with(\.trailingTrivia, binding.initializer?.trailingTrivia ?? Trivia())
})

return super.visit(node.with(\.bindings, newBindings))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ private class Rewriter: SyntaxRewriter, ViolationsSyntaxRewriter {
correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
let newNode = node
.with(\.initializer, nil)
.with(\.pattern, node.pattern.with(\.trailingTrivia, node.trailingTrivia ?? .zero))
.with(\.pattern, node.pattern.with(\.trailingTrivia, node.trailingTrivia))
return super.visit(newNode)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ private extension ToggleBoolRule {
)
.removingLast()
.removingLast()
.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
.with(\.trailingTrivia, node.trailingTrivia ?? .zero)
.with(\.leadingTrivia, node.leadingTrivia)
.with(\.trailingTrivia, node.trailingTrivia)

return super.visit(newNode)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ private extension TrailingSemicolonRule {
}

correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
return .unknown("").with(\.trailingTrivia, node.trailingTrivia ?? .zero)
return .unknown("").with(\.trailingTrivia, node.trailingTrivia)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ private extension AnyObjectProtocolRule {
\.typeName,
TypeSyntax(
SimpleTypeIdentifierSyntax(name: .identifier("AnyObject"), genericArgumentClause: nil)
.with(\.leadingTrivia, typeName.leadingTrivia ?? .zero)
.with(\.trailingTrivia, typeName.trailingTrivia ?? .zero)
.with(\.leadingTrivia, typeName.leadingTrivia)
.with(\.trailingTrivia, typeName.trailingTrivia)
)
)
)
Expand Down
4 changes: 2 additions & 2 deletions Source/SwiftLintFramework/Rules/Lint/ArrayInitRule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ private extension ClosureSignatureSyntax {
func singleInputParamText() -> String? {
if let list = input?.as(ClosureParamListSyntax.self), list.count == 1 {
return list.onlyElement?.name.text
} else if let clause = input?.as(ParameterClauseSyntax.self), clause.parameterList.count == 1,
} else if let clause = input?.as(ClosureParameterClauseSyntax.self), clause.parameterList.count == 1,
clause.parameterList.first?.secondName == nil {
return clause.parameterList.first?.firstName?.text
return clause.parameterList.first?.firstName.text
} else {
return nil
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,13 @@ private extension LowerACLThanParentRule {
let newNode: DeclModifierSyntax
if node.name.tokenKind == .keyword(.open) {
newNode = DeclModifierSyntax(
leadingTrivia: node.leadingTrivia ?? .zero,
leadingTrivia: node.leadingTrivia,
name: .keyword(.public),
trailingTrivia: .space
)
} else {
newNode = DeclModifierSyntax(
leadingTrivia: node.leadingTrivia ?? .zero,
leadingTrivia: node.leadingTrivia,
name: .identifier("")
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,9 @@ private extension FunctionDeclSyntax {
parameterList.count == 2,
let lhs = parameterList.first,
let rhs = parameterList.last,
lhs.firstName?.text == "lhs",
rhs.firstName?.text == "rhs",
let lhsTypeDescription = lhs.type?.trimmedDescription,
let rhsTypeDescription = rhs.type?.trimmedDescription,
lhsTypeDescription == rhsTypeDescription
lhs.firstName.text == "lhs",
rhs.firstName.text == "rhs",
lhs.type.trimmedDescription == rhs.type.trimmedDescription
else {
return false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,17 +224,17 @@ private class Rewriter: SyntaxRewriter, ViolationsSyntaxRewriter {
return (nil, declKeyword)
}
var filteredModifiers = [DeclModifierSyntax]()
var leadingTrivia = Trivia.zero
var leadingTrivia = Trivia()
for modifier in modifiers {
let accumulatedLeadingTrivia = leadingTrivia + (modifier.leadingTrivia ?? .zero)
let accumulatedLeadingTrivia = leadingTrivia + (modifier.leadingTrivia)
if modifier.name.tokenKind == .keyword(.private) {
leadingTrivia = accumulatedLeadingTrivia
} else {
filteredModifiers.append(modifier.with(\.leadingTrivia, accumulatedLeadingTrivia))
leadingTrivia = .zero
leadingTrivia = Trivia()
}
}
let declKeyword = declKeyword.with(\.leadingTrivia, leadingTrivia + (declKeyword.leadingTrivia ?? .zero))
let declKeyword = declKeyword.with(\.leadingTrivia, leadingTrivia + (declKeyword.leadingTrivia))
return (ModifierListSyntax(filteredModifiers), declKeyword)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,13 @@ private extension UnusedClosureParameterRule {
.walk(tree: node.statements, handler: \.identifiers)

guard let params = input.as(ClosureParamListSyntax.self) else {
guard let params = input.as(ParameterClauseSyntax.self) else {
guard let params = input.as(ClosureParameterClauseSyntax.self) else {
return super.visit(node)
}

var newParams = params
for (index, param) in params.parameterList.enumerated() {
guard let name = param.firstName else {
continue
}

let name = param.firstName
if name.tokenKind == .wildcard {
continue
} else if referencedIdentifiers.contains(name.text.removingDollarsAndBackticks) {
Expand Down Expand Up @@ -148,17 +145,15 @@ private extension ClosureExprSyntax {
name: param.name.text.removingDollarsAndBackticks
)
}
} else if let params = signature?.input?.as(ParameterClauseSyntax.self)?.parameterList {
} else if let params = signature?.input?.as(ClosureParameterClauseSyntax.self)?.parameterList {
return params.compactMap { param in
if param.firstName?.tokenKind == .wildcard {
if param.firstName.tokenKind == .wildcard {
return nil
}
return param.firstName.map { name in
ClosureParam(
position: name.positionAfterSkippingLeadingTrivia,
name: name.text.removingDollarsAndBackticks
)
}
return ClosureParam(
position: param.firstName.positionAfterSkippingLeadingTrivia,
name: param.firstName.text.removingDollarsAndBackticks
)
}
} else {
return []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ private extension UnusedControlFlowLabelRule {
return super.visit(node)
}

let newNode = node.statement.with(\.leadingTrivia, node.leadingTrivia ?? .zero)
let newNode = node.statement.with(\.leadingTrivia, node.leadingTrivia)
correctionPositions.append(violationPosition)
return visit(newNode).as(StmtSyntax.self) ?? newNode
}
Expand Down
4 changes: 2 additions & 2 deletions Source/SwiftLintFramework/Rules/Style/AttributesRule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@ private extension AttributesRule {
}

let hasMultipleNewlines = node.children(viewMode: .sourceAccurate).enumerated().contains { index, element in
if index > 0 && element.leadingTrivia?.hasMultipleNewlines == true {
if index > 0 && element.leadingTrivia.hasMultipleNewlines == true {
return true
} else {
return element.trailingTrivia?.hasMultipleNewlines == true
return element.trailingTrivia.hasMultipleNewlines == true
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ private extension ClosingBraceRule {
}

correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
return super.visit(node.with(\.trailingTrivia, .zero))
return super.visit(node.with(\.trailingTrivia, Trivia()))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ private extension ClosureSignatureSyntax {

if let input = input?.as(ClosureParamListSyntax.self) {
positions.append(contentsOf: input.map(\.positionAfterSkippingLeadingTrivia))
} else if let input = input?.as(ParameterClauseSyntax.self) {
} else if let input = input?.as(ClosureParameterClauseSyntax.self) {
positions.append(contentsOf: input.parameterList.map(\.positionAfterSkippingLeadingTrivia))
}

Expand Down
6 changes: 3 additions & 3 deletions Source/SwiftLintFramework/Rules/Style/DirectReturnRule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -245,9 +245,9 @@ private class Rewriter: SyntaxRewriter, ViolationsSyntaxRewriter {
item: .stmt(StmtSyntax(returnStmt.with(\.expression, initExpression)))
))
} else {
let leadingTrivia = (varDecl.leadingTrivia?.withoutTrailingIndentation ?? .zero)
+ (varDecl.trailingTrivia ?? .zero)
+ (returnStmt.leadingTrivia?.withFirstEmptyLineRemoved ?? .zero)
let leadingTrivia = varDecl.leadingTrivia.withoutTrailingIndentation +
varDecl.trailingTrivia +
returnStmt.leadingTrivia.withFirstEmptyLineRemoved
newStmtList.append(
CodeBlockItemSyntax(
item: .stmt(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ private extension FunctionCallExprSyntax {

if argumentList.allSatisfy({ $0.expression.is(DiscardAssignmentExprSyntax.self) }) {
let newCalledExpression = calledExpression
.with(\.trailingTrivia, rightParen?.trailingTrivia ?? .zero)
.with(\.trailingTrivia, rightParen?.trailingTrivia ?? Trivia())
let newExpression = self
.with(\.calledExpression, ExprSyntax(newCalledExpression))
.with(\.leftParen, nil)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ private extension InclusiveLanguageRule {
}

override func visitPost(_ node: FunctionParameterSyntax) {
if let name = node.firstName, let violation = violation(for: name) {
if let violation = violation(for: node.firstName) {
violations.append(violation)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,9 +194,7 @@ private extension MultilineArgumentsBracketsRule {
}

private func hasLeadingNewline(_ syntax: SyntaxProtocol) -> Bool {
guard let leadingTrivia = syntax.leadingTrivia else { return false }

return leadingTrivia.pieces.contains { $0.isNewline }
syntax.leadingTrivia.contains(where: \.isNewline)
}
}
}
Loading

0 comments on commit 70a56a1

Please sign in to comment.