swift
0d23dc63 - Sema: Ban unavailable deinits.

Commit
2 years ago
Sema: Ban unavailable deinits. Destructors are always called if declared, so allowing deinit to be declared as unavailable (or potentially unavailable) creates a type checking loophole that allows unavailable code to execute at runtime: ``` class C { @available(*, unavailable) deinit { print("Oops") } } _ = C() // prints "Oops" ``` Resolves rdar://106409012 and https://github.com/apple/swift/issues/63854.
Author
Committer
Parents
Loading