explicit_init - ApplebaumIan/BitbucketAPI GitHub Wiki
Explicit Init
Explicitly calling .init() should be avoided.
- Identifier: explicit_init
- Enabled by default: Disabled
- Supports autocorrection: Yes
- Kind: idiomatic
- Analyzer rule: No
- Minimum Swift compiler version: 3.0.0
- Default configuration: warning
Non Triggering Examples
import Foundation; class C: NSObject { override init() { super.init() }}
struct S { let n: Int }; extension S { init() { self.init(n: 1) } }
[1].flatMap(String.init)
[String.self].map { $0.init(1) }
[String.self].map { type in type.init(1) }
Observable.zip(obs1, obs2, resultSelector: MyType.init).asMaybe()
Observable.zip(
obs1,
obs2,
resultSelector: MyType.init
).asMaybe()
Triggering Examples
[1].flatMap{String↓.init($0)}
[String.self].map { Type in Type↓.init(1) }
func foo() -> [String] {
return [1].flatMap { String↓.init($0) }
}
Observable.zip(
obs1,
obs2,
resultSelector: { MyType.init($0, $1) }
).asMaybe()