SwiftLint/Source/SwiftLintFramework/Rules/Idiomatic/DiscouragedOptionalBooleanR...

169 lines
7.2 KiB
Swift

internal struct DiscouragedOptionalBooleanRuleExamples {
static let nonTriggeringExamples = [
// Global variable
"var foo: Bool",
"var foo: [String: Bool]",
"var foo: [Bool]",
"let foo: Bool = true",
"let foo: Bool = false",
"let foo: [String: Bool] = [:]",
"let foo: [Bool] = []",
// Computed get variable
"var foo: Bool { return true }",
"let foo: Bool { return false }()",
// Free function return
"func foo() -> Bool {}",
"func foo() -> [String: Bool] {}",
"func foo() -> ([Bool]) -> String {}",
// Free function parameter
"func foo(input: Bool = true) {}",
"func foo(input: [String: Bool] = [:]) {}",
"func foo(input: [Bool] = []) {}",
// Method return
wrapExample("class", "func foo() -> Bool {}"),
wrapExample("class", "func foo() -> [String: Bool] {}"),
wrapExample("class", "func foo() -> ([Bool]) -> String {}"),
wrapExample("struct", "func foo() -> Bool {}"),
wrapExample("struct", "func foo() -> [String: Bool] {}"),
wrapExample("struct", "func foo() -> ([Bool]) -> String {}"),
wrapExample("enum", "func foo() -> Bool {}"),
wrapExample("enum", "func foo() -> [String: Bool] {}"),
wrapExample("enum", "func foo() -> ([Bool]) -> String {}"),
// Method parameter
wrapExample("class", "func foo(input: Bool = true) {}"),
wrapExample("class", "func foo(input: [String: Bool] = [:]) {}"),
wrapExample("class", "func foo(input: [Bool] = []) {}"),
wrapExample("struct", "func foo(input: Bool = true) {}"),
wrapExample("struct", "func foo(input: [String: Bool] = [:]) {}"),
wrapExample("struct", "func foo(input: [Bool] = []) {}"),
wrapExample("enum", "func foo(input: Bool = true) {}"),
wrapExample("enum", "func foo(input: [String: Bool] = [:]) {}"),
wrapExample("enum", "func foo(input: [Bool] = []) {}")
]
static let triggeringExamples = [
// Global variable
"var foo: ↓Bool?",
"var foo: [String: ↓Bool?]",
"var foo: [↓Bool?]",
"let foo: ↓Bool? = nil",
"let foo: [String: ↓Bool?] = [:]",
"let foo: [↓Bool?] = []",
"let foo = ↓Optional.some(false)",
"let foo = ↓Optional.some(true)",
// Computed Get Variable
"var foo: ↓Bool? { return nil }",
"let foo: ↓Bool? { return nil }()",
// Free function return
"func foo() -> ↓Bool? {}",
"func foo() -> [String: ↓Bool?] {}",
"func foo() -> [↓Bool?] {}",
"static func foo() -> ↓Bool? {}",
"static func foo() -> [String: ↓Bool?] {}",
"static func foo() -> [↓Bool?] {}",
"func foo() -> (↓Bool?) -> String {}",
"func foo() -> ([Int]) -> ↓Bool? {}",
// Free function parameter
"func foo(input: ↓Bool?) {}",
"func foo(input: [String: ↓Bool?]) {}",
"func foo(input: [↓Bool?]) {}",
"static func foo(input: ↓Bool?) {}",
"static func foo(input: [String: ↓Bool?]) {}",
"static func foo(input: [↓Bool?]) {}",
// Instance variable
wrapExample("class", "var foo: ↓Bool?"),
wrapExample("class", "var foo: [String: ↓Bool?]"),
wrapExample("class", "let foo: ↓Bool? = nil"),
wrapExample("class", "let foo: [String: ↓Bool?] = [:]"),
wrapExample("class", "let foo: [↓Bool?] = []"),
wrapExample("struct", "var foo: ↓Bool?"),
wrapExample("struct", "var foo: [String: ↓Bool?]"),
wrapExample("struct", "let foo: ↓Bool? = nil"),
wrapExample("struct", "let foo: [String: ↓Bool?] = [:]"),
wrapExample("struct", "let foo: [↓Bool?] = []"),
// Instance computed variable
wrapExample("class", "var foo: ↓Bool? { return nil }"),
wrapExample("class", "let foo: ↓Bool? { return nil }()"),
wrapExample("struct", "var foo: ↓Bool? { return nil }"),
wrapExample("struct", "let foo: ↓Bool? { return nil }()"),
wrapExample("enum", "var foo: ↓Bool? { return nil }"),
wrapExample("enum", "let foo: ↓Bool? { return nil }()"),
// Method return
wrapExample("class", "func foo() -> ↓Bool? {}"),
wrapExample("class", "func foo() -> [String: ↓Bool?] {}"),
wrapExample("class", "func foo() -> [↓Bool?] {}"),
wrapExample("class", "static func foo() -> ↓Bool? {}"),
wrapExample("class", "static func foo() -> [String: ↓Bool?] {}"),
wrapExample("class", "static func foo() -> [↓Bool?] {}"),
wrapExample("class", "func foo() -> (↓Bool?) -> String {}"),
wrapExample("class", "func foo() -> ([Int]) -> ↓Bool? {}"),
wrapExample("struct", "func foo() -> ↓Bool? {}"),
wrapExample("struct", "func foo() -> [String: ↓Bool?] {}"),
wrapExample("struct", "func foo() -> [↓Bool?] {}"),
wrapExample("struct", "static func foo() -> ↓Bool? {}"),
wrapExample("struct", "static func foo() -> [String: ↓Bool?] {}"),
wrapExample("struct", "static func foo() -> [↓Bool?] {}"),
wrapExample("struct", "func foo() -> (↓Bool?) -> String {}"),
wrapExample("struct", "func foo() -> ([Int]) -> ↓Bool? {}"),
wrapExample("enum", "func foo() -> ↓Bool? {}"),
wrapExample("enum", "func foo() -> [String: ↓Bool?] {}"),
wrapExample("enum", "func foo() -> [↓Bool?] {}"),
wrapExample("enum", "static func foo() -> ↓Bool? {}"),
wrapExample("enum", "static func foo() -> [String: ↓Bool?] {}"),
wrapExample("enum", "static func foo() -> [↓Bool?] {}"),
wrapExample("enum", "func foo() -> (↓Bool?) -> String {}"),
wrapExample("enum", "func foo() -> ([Int]) -> ↓Bool? {}"),
// Method parameter
wrapExample("class", "func foo(input: ↓Bool?) {}"),
wrapExample("class", "func foo(input: [String: ↓Bool?]) {}"),
wrapExample("class", "func foo(input: [↓Bool?]) {}"),
wrapExample("class", "static func foo(input: ↓Bool?) {}"),
wrapExample("class", "static func foo(input: [String: ↓Bool?]) {}"),
wrapExample("class", "static func foo(input: [↓Bool?]) {}"),
wrapExample("struct", "func foo(input: ↓Bool?) {}"),
wrapExample("struct", "func foo(input: [String: ↓Bool?]) {}"),
wrapExample("struct", "func foo(input: [↓Bool?]) {}"),
wrapExample("struct", "static func foo(input: ↓Bool?) {}"),
wrapExample("struct", "static func foo(input: [String: ↓Bool?]) {}"),
wrapExample("struct", "static func foo(input: [↓Bool?]) {}"),
wrapExample("enum", "func foo(input: ↓Bool?) {}"),
wrapExample("enum", "func foo(input: [String: ↓Bool?]) {}"),
wrapExample("enum", "func foo(input: [↓Bool?]) {}"),
wrapExample("enum", "static func foo(input: ↓Bool?) {}"),
wrapExample("enum", "static func foo(input: [String: ↓Bool?]) {}"),
wrapExample("enum", "static func foo(input: [↓Bool?]) {}")
]
}
// MARK: - Private
private func wrapExample(_ type: String, _ test: String) -> String {
return "\(type) Foo {\n\t\(test)\n}"
}