From 8a97c8bfef4138b9bc4d49fb545c9da9eec93dbb Mon Sep 17 00:00:00 2001 From: Nick Lockwood Date: Fri, 12 Apr 2019 08:55:20 +0100 Subject: [PATCH] =?UTF-8?q?Refactored=20=E2=80=94self=20insert=20logic=20a?= =?UTF-8?q?nd=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Inference.swift | 26 +++++++++++++------------- Sources/Rules.swift | 20 ++++++++++---------- Tests/RulesTests.swift | 10 ++++------ 3 files changed, 27 insertions(+), 29 deletions(-) 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) } }