diff --git a/Sources/Inference.swift b/Sources/Inference.swift index 20e04c14..e7f4fbd7 100644 --- a/Sources/Inference.swift +++ b/Sources/Inference.swift @@ -898,19 +898,19 @@ private struct Inference { } } let name = token.unescaped() - if members.contains(name), !localNames.contains(name), !isAssignmentKeyword || - formatter.last(.nonSpaceOrCommentOrLinebreak, before: index) == .operator("=", .infix) { - if let lastToken = formatter.last(.nonSpaceOrCommentOrLinebreak, before: index), - lastToken.isOperator(".") { - break - } - if isInit, formatter.next(.nonSpaceOrCommentOrLinebreak, after: index) == .operator("=", .infix) { - initRemoved += 1 - } else { - removed += 1 - } - index += 1 - continue + guard members.contains(name), !localNames.contains(name), !isAssignmentKeyword || + formatter.last(.nonSpaceOrCommentOrLinebreak, before: index) == .operator("=", .infix), + formatter.next(.nonSpaceOrComment, after: index) != .delimiter(":") else { + break + } + if let lastToken = formatter.last(.nonSpaceOrCommentOrLinebreak, before: index), + lastToken.isOperator(".") { + break + } + if isInit, formatter.next(.nonSpaceOrCommentOrLinebreak, after: index) == .operator("=", .infix) { + initRemoved += 1 + } else { + removed += 1 } case .endOfScope("case"), .endOfScope("default"): return diff --git a/Sources/Rules.swift b/Sources/Rules.swift index 241d3494..788311ca 100644 --- a/Sources/Rules.swift +++ b/Sources/Rules.swift @@ -2521,17 +2521,17 @@ public struct _FormatRules { } } let name = token.unescaped() - if members.contains(name), !localNames.contains(name), !isAssignmentKeyword || - formatter.last(.nonSpaceOrCommentOrLinebreak, before: index) == .operator("=", .infix) { - if let lastToken = formatter.last(.nonSpaceOrCommentOrLinebreak, before: index), - lastToken.isOperator(".") { - break - } - if formatter.nextToken(after: index) != .delimiter(":") { - formatter.insertTokens([.identifier("self"), .operator(".", .infix)], at: index) - index += 2 - } + guard members.contains(name), !localNames.contains(name), !isAssignmentKeyword || + formatter.last(.nonSpaceOrCommentOrLinebreak, before: index) == .operator("=", .infix), + formatter.next(.nonSpaceOrComment, after: index) != .delimiter(":") else { + break } + if let lastToken = formatter.last(.nonSpaceOrCommentOrLinebreak, before: index), + lastToken.isOperator(".") { + break + } + formatter.insertTokens([.identifier("self"), .operator(".", .infix)], at: index) + index += 2 case .endOfScope("case"), .endOfScope("default"): return case .endOfScope: diff --git a/Tests/RulesTests.swift b/Tests/RulesTests.swift index a1dd97e6..40f29709 100644 --- a/Tests/RulesTests.swift +++ b/Tests/RulesTests.swift @@ -6554,21 +6554,19 @@ class RulesTests: XCTestCase { func testSelfNotInsertedInParameterNames() { let input = """ - func foo(a _: String) {} - class Bar { + class Foo { let a: String - func hoge() { + func bar() { foo(a: a) } } """ let output = """ - func foo(a _: String) {} - class Bar { + class Foo { let a: String - func hoge() { + func bar() { foo(a: self.a) } }