Implicit Optional Initialization
Optionals should be consistently initialized, either with = nil
or without.
- Identifier:
implicit_optional_initialization
- Enabled by default: Yes
- Supports autocorrection: Yes
- Kind: style
- Analyzer rule: No
- Minimum Swift compiler version: 5.0.0
- Default configuration:
Key Value severity warning style always
Non Triggering Examples
var foo: Int? {
if bar != nil { }
return 0
}
var foo: Int? = {
if bar != nil { }
return 0
}()
lazy var test: Int? = nil
let myVar: String? = nil
var myVar: Int? { nil }
var x: Int? = 1
//
// style: never
//
private var myVar: Int? = nil
//
// style: never
//
var myVar: Optional<Int> = nil
//
// style: never
//
var myVar: Int? { nil }, myOtherVar: Int? = nil
//
// style: never
//
var myVar: String? = nil {
didSet { print("didSet") }
}
//
// style: never
//
func funcName() {
var myVar: String? = nil
}
//
// style: never
//
var x: Int? = nil // comment
//
// style: always
//
public var myVar: Int?
//
// style: always
//
var myVar: Optional<Int>
//
// style: always
//
var myVar: Int? { nil }, myOtherVar: Int?
//
// style: always
//
var myVar: String? {
didSet { print("didSet") }
}
//
// style: always
//
func funcName() {
var myVar: String?
}
//
// style: always
//
var x: Int? // comment
Triggering Examples
//
// style: never
//
var ↓myVar: Int?
//
// style: never
//
var ↓myVar: Optional<Int>
//
// style: never
//
var myVar: Int? = nil, ↓myOtherVar: Int?
//
// style: never
//
var ↓myVar: String? {
didSet { print("didSet") }
}
//
// style: never
//
func funcName() {
var ↓myVar: String?
}
//
// style: always
//
var ↓myVar: Int? = nil
//
// style: always
//
var ↓myVar: Optional<Int> = nil
//
// style: always
//
var myVar: Int?, ↓myOtherVar: Int? = nil
//
// style: always
//
var ↓myVar: String? = nil {
didSet { print("didSet") }
}
//
// style: always
//
func funcName() {
var ↓myVar: String? = nil
}