> On Apr 21, 2016, at 2:29 AM, Alexandr.moq via swift-dev <swift-dev@swift.org> > wrote: > > Should SWIFT initialize a variable in deinit method if it has not been > initialized? > > For example: > ```swift > class A { > lazy var b = B() > deinit { > b.clean() > } > } > var a = A() > a.b.doSomething() //1: variable was created > a = A() //2: "clean" method was called for "b" variable > a = A() //3: instance of A from step 2 should killed and "deinit" method is > called. In this method "b" variable will be created, "clean" will be called > and "b" will be killed. So, is it ok or better if swift doesn’t create lazy > variables in deinit if variable is not created yet > ```
I’m not exactly sure what the question is here, but the correct behavior in this case is for the call to “b.clean()” to trigger the lazy initialization of b if it hasn’t already been initialized. There is no “short circuit” that would prevent this from happening just because this is a deinit. Also, it is frequently requested, but there is currently no way to check to see if a lazy property has been touched or not. -Chris _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev