Fix correction on `lower_acl_than_parent` rule (#4761)

Fixes #4753
This commit is contained in:
Marcelo Fabri 2023-02-09 01:47:33 -08:00 committed by GitHub
parent 9c216baf20
commit b9e5cfb202
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -104,6 +104,10 @@
[patricks](https://github.com/patricks)
[#4725](https://github.com/realm/SwiftLint/pull/4725)
* Fix correction on `lower_acl_than_parent` rule for `open` declarations.
[Marcelo Fabri](https://github.com/marcelofabri)
[#4753](https://github.com/realm/SwiftLint/issues/4753)
## 0.50.3: Bundle of Towels
#### Breaking

View File

@ -56,7 +56,7 @@ struct LowerACLThanParentRule: OptInRule, ConfigurationProviderRule, SwiftSyntax
Example("enum Foo { ↓public func bar() {} }"):
Example("enum Foo { func bar() {} }"),
Example("public class Foo { ↓open func bar() }"):
Example("public class Foo { func bar() }"),
Example("public class Foo { public func bar() }"),
Example("class Foo { ↓public private(set) var bar: String? }"):
Example("class Foo { private(set) var bar: String? }"),
Example("private struct Foo { ↓public func bar() {} }"):
@ -112,8 +112,17 @@ private extension LowerACLThanParentRule {
}
correctionPositions.append(node.positionAfterSkippingLeadingTrivia)
let keyword: String
let trailingTrivia: Trivia
if node.name.tokenKind == .contextualKeyword("open") {
keyword = "public"
trailingTrivia = .space
} else {
keyword = ""
trailingTrivia = .zero
}
let newNode = node.withName(
.contextualKeyword("", leadingTrivia: node.leadingTrivia ?? .zero)
.contextualKeyword(keyword, leadingTrivia: node.leadingTrivia ?? .zero, trailingTrivia: trailingTrivia)
)
return super.visit(newNode)
}