Почему замыкания требуют явного `self`, когда все они по умолчанию не экранированы в Swift 3?

Я заметил, что в Swift 2.2 замыкания помечены как не экранирующие с@noescape не требует явногоself, В Swift 3 все замыкания не являются экранированными по умолчанию и теперь требуют, чтобы они были помечены@escaping если вы хотите, чтобы они смогли сбежать.

Учитывая, что все замыкания в Swift 3 по умолчанию не являются экранированными, почему они требуют явногоself?

final class SomeViewController: NSViewController {

    var someClosure: () -> () = { _ in }

    override func viewDidLoad() {
        super.viewDidLoad()

        someClosure = {
            view.layer = CALayer() // ERROR: Implicit use of `self` in closure; use `self.` to make capture semantics explicit
        }
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос