Opaque Over Existential Parameter
Prefer opaque over existential type in function parameter
- Identifier:
opaque_over_existential
- Enabled by default: No
- Supports autocorrection: Yes
- Kind: lint
- Analyzer rule: No
- Minimum Swift compiler version: 5.0.0
- Default configuration:
Key Value severity warning
Non Triggering Examples
func f(_: some P) {}
func f(_: (some P)?) {}
func f(_: some P & Q) {}
func f(_: any P.Type) {}
func f(_: (any P.Type)?) {}
func f(_: borrowing any ~Copyable.Type) {}
func f(_: () -> Int = { let i: any P = p(); return i.get() }) {}
func f(_: [any P]) {}
func f(_: [any P: any Q]) {}
func f(_: () -> any P) {}
Triggering Examples
func f(_: ↓any P) {}
func f(_: (↓any P)?) {}
func f(_: ↓any P & Q) {}
func f(_: borrowing ↓any ~Copyable) {}
func f(_: borrowing (↓any ~Copyable)?) {}
func f(_: (↓any P, ↓any Q)) {}