mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
A new implementation from "first principles". The idea is that for a given conformance, we either have an explicit source which forms the root of the requirement path, or a derived source, which we 'factor' into a parent type/parent protocol pair, and a requirement signature requirement. We recursively compute the conformance access path of the parent type and parent protocol, and append the path element for the requirement. This fixes a long-standing crasher, and eliminates two hacks, the 'usesRequirementSource' flag in RequirementSource, and the 'HadAnyRedundantConstraints' flag in GenericSignatureBuilder. Fixes https://bugs.swift.org/browse/SR-7371 / rdar://problem/39239511
1.0 KiB
1.0 KiB