Unowned Variable Capture

Prefer capturing references as weak to avoid potential crashes

  • Identifier: unowned_variable_capture
  • Enabled by default: No
  • Supports autocorrection: No
  • Kind: lint
  • Analyzer rule: No
  • Minimum Swift compiler version: 5.0.0
  • Default configuration:
    KeyValue
    severity warning

Non Triggering Examples

foo { [weak self] in _ }
foo { [weak self] param in _ }
foo { [weak bar] in _ }
foo { [weak bar] param in _ }
foo { bar in _ }
foo { $0 }
final class First {}
final class Second {
    unowned var value: First
    init(value: First) {
        self.value = value
    }
}

Triggering Examples

foo { [unowned self] in _ }
foo { [unowned bar] in _ }
foo { [bar, unowned self] in _ }