swift
762bf1e7 - RequirementMachine: Refine 'derived via protocol typealias' criterion

Commit
3 years ago
RequirementMachine: Refine 'derived via protocol typealias' criterion Preserves concrete type rules on associated types that were derived from rules indirectly formed from protocol typealias rules. That is, if you have a pair of rules in another minimization domain: [P].A.[concrete: C] => [P].A [Q:T].[P] => [Q:T] Then completion will introduce a new rule: [Q:T].A.[concrete: C] => [Q:T].A Since this rule is outside of our minimization domain, we don't record a rewrite loop for it, and it will never become redundant. Now if we have a rule in our own minimization domain: T.[Q:T].A => T.[Q:U] Then we get a new rule: T.[Q:U].[concrete: C] => T.[Q:U] Make sure we keep this rule around on account of it being derived from ([Q:T].A.[concrete: C] => [Q:T].A).
Author
Committer
Parents
Loading