Type-safe Array Init
Prefer using Array(seq)
over seq.map { $0 }
to convert a sequence into an Array
- Identifier:
typesafe_array_init
- Enabled by default: No
- Supports autocorrection: No
- Kind: lint
- Analyzer rule: Yes
- Minimum Swift compiler version: 5.0.0
- Default configuration:
Key Value severity warning
Non Triggering Examples
enum MyError: Error {}
let myResult: Result<String, MyError> = .success("")
let result: Result<Any, MyError> = myResult.map { $0 }
struct IntArray {
let elements = [1, 2, 3]
func map<T>(_ transformer: (Int) throws -> T) rethrows -> [T] {
try elements.map(transformer)
}
}
let ints = IntArray()
let intsCopy = ints.map { $0 }
Triggering Examples
func f<Seq: Sequence>(s: Seq) -> [Seq.Element] {
s.↓map({ $0 })
}
func f(array: [Int]) -> [Int] {
array.↓map { $0 }
}
let myInts = [1, 2, 3].↓map { return $0 }
struct Generator: Sequence, IteratorProtocol {
func next() -> Int? { nil }
}
let array = Generator().↓map { i in i }