swift
a288422a - Sema: Fix override availability checking for protocols.

Commit
1 year ago
Sema: Fix override availability checking for protocols. Given the following test case, override availability checking produced an erroneus diagnostic: ``` @available(macOS 10.15, *) protocol P { associatedtype A var a: A { get set } } @available(macOS 13.0, *) protocol Q: P { // error: overriding _modify accessor for 'a' must be as available as // declaration it overrides var a: A { get set } } ``` The synthesized `_modify` accessor in `Q` is explicitly marked available in macOS 13, which is less available than the `_modify` accessor in `P`. The availability of `Q` should limit the required availability of the override and prevent the diagnostic, but the implementation had a bug where it checked the availability of the context's type instead of the contextual self type's declaration. In the example, the context's type is `Self` which does not have annotated availability. Resolves rdar://133573707.
Author
Committer
Parents
Loading