An escaping closure runs after its owner is deallocated. What happens?
class Logger {
var prefix = "LOG"
lazy var emit: () -> Void = { [weak self] in
self?.prefix.append("!")
}
}
var logger: Logger? = Logger()
let fire = logger!.emit
logger = nil
fire()
print("finished")