inout
import Dispatch func run(_ body: @escaping () -> Void) { body() } struct S { var a: Int = 42 mutating func foo() { func _foo() { if a == 0 { return } a -= 1 print(a) run(_foo) } _foo() } } var s = S() s.foo()