Inert Defer

If defer is at the end of its parent scope, it will be executed right where it is anyway

  • Identifier: inert_defer
  • 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

func example3() {
    defer { /* deferred code */ }

    print("other code")
}
func example4() {
    if condition {
        defer { /* deferred code */ }
        print("other code")
    }
}

Triggering Examples

func example0() {
    defer { /* deferred code */ }
}
func example1() {
    defer { /* deferred code */ }
    // comment
}
func example2() {
    if condition {
        defer { /* deferred code */ }
        // comment
    }
}