swift
0f30686c - IRGen: Rewrite isSpecializedNominalTypeMetadataStaticallyAddressable()

Commit
2 years ago
IRGen: Rewrite isSpecializedNominalTypeMetadataStaticallyAddressable() The old logic looked at each generic parameter, and each conformance of that generic parameter. This missed conformance requirements where the subject type is a dependent member type. Also, the check for dependent witness tables was too strict, because it should have skipped protocols without witness tables. Refactor everything to instead walk the substitution map directly, and check each replacement type and conformance. This simplifies the logic and fixes failures with non-copyable generics enabled.
Author
Committer
Parents
Loading