Commit Graph

2 Commits

Author SHA1 Message Date
Slava Pestov
30da30e0ee RequirementMachine: Rule::isProtocolRefinementRule() allows transitive refinement
Without this, we only considered a protocol refinement rule redundant if
it was derived by directly-stated protocol refinements. But this broke
when completion introduced a 'transitive' refinement [P].[R] => [P]
from two directly-stated refinements [P].[Q] => [P] and [Q].[R] => [Q].

Fixes rdar://problem/90402503.
2022-03-17 15:06:05 -04:00
Slava Pestov
755941c21f RequirementMachine: Split off Rule.cpp from RewriteSystem.cpp 2022-03-15 13:35:34 -04:00