This indicates that the "self" argument to the current function is always dynamically of the exact
static base class type, allowing metadata accesses in IRGen to use the local self metadata to answer
metadata requests for the class type. Set this attribute on allocating entry points of designated
inits, which is one of the most common places where we emit redundant metadata accesses.
I believe this was fixed with https://github.com/apple/swift/pull/23932.
5.1 had an inconsistency here because the synthesized declaration was not
marked as final; we would sometimes check if a method itself was final,
other times we would check if both the method and the class were final.
Lucky it worked out so that the emitted vtable entry did not appear to
ever have been used.
Make sure this behavior doesn't change going forward with a test.
Sorting of DeclContext-local protocols and conformances shouldn't ever
be necessary, because the underlying data structures that produce
these lists should be deterministic. Sorting can hide any
non-determinism, so stop doing it and we can address the underlying
nondeterminism.