diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b3fd5fdcc..e5e4371af4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,11 @@ [SimplyDanny](https://github.com/SimplyDanny) [#5573](https://github.com/realm/SwiftLint/issues/5573) +* Remove redundant initializers in `unneeded_override` rule only when checking + initializers is actually enabled in the configuration. + [SimplyDanny](https://github.com/SimplyDanny) + [#5571](https://github.com/realm/SwiftLint/issues/5571) + ## 0.55.0: Universal Washing Powder #### Breaking diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRule.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRule.swift index 09534bc962..58ef48cf16 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRule.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRule.swift @@ -41,7 +41,7 @@ private extension UnneededOverrideRule { } override func visit(_ node: InitializerDeclSyntax) -> DeclSyntax { - guard node.isUnneededOverride else { + guard configuration.affectInits, node.isUnneededOverride else { return super.visit(node) } diff --git a/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRuleExamples.swift b/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRuleExamples.swift index 25b62636de..2014039e0d 100644 --- a/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRuleExamples.swift +++ b/Source/SwiftLintBuiltInRules/Rules/Lint/UnneededOverrideRuleExamples.swift @@ -206,6 +206,21 @@ struct UnneededOverrideRuleExamples { // This is another function func baz() {} } + """), + // Nothing happens to initializers by default. + Example(""" + class Foo { + ↓override func foo() { super.foo() } + override init(i: Int) { + super.init(i: i) + } + } + """): Example(""" + class Foo { + override init(i: Int) { + super.init(i: i) + } + } """) ] }