Pattern: Override in extension
Issue: -
Extensions shouldn't override declarations.
Examples of correct code:
extension Person {
var age: Int { return 42 }
}
extension Person {
func celebrateBirthday() {}
}
class Employee: Person {
override func celebrateBirthday() {}
}
class Foo: NSObject {}
extension Foo {
override var description: String { return "" }
}
struct Foo {
class Bar: NSObject {}
}
extension Foo.Bar {
override var description: String { return "" }
}
Examples of incorrect code:
extension Person {
override ↓var age: Int { return 42 }
}
extension Person {
override ↓func celebrateBirthday() {}
}