Closure capturing incomprehensibility

Maybe this is silly question, but I all the way can’t understand one moment in capturing. Example code:

func someFunctionWithNoneescapingClosure(closure: () -> Void) {
    closure()
}


class SomeClass {
    var x = 10
    
    func doSomething() {
        someFunctionWithNoneescapingClosure { x = 200 }
    }
    
}

Why in this example variable x is not captured by closure?

x is an instance variable, so its container, which is an instance of SomeClass, is captured.

so, it’s actually captured? But why compiler don’t show me the warning “add “self.” to make capturing explicitly”? If I add @escaping or make a nested function - I’ll see it.

Non-escaping closures are executed synchronously with respect to their call site. It is thus unnecessary to worry about retain cycles, and the compiler does not force you to declare your intent with respect to the capturing of self.

I think I understand now. Thanks!