Closed lowr closed 1 year ago
@bors r+
:pushpin: Commit 1346728050928f5ed800dea034603af9d38bcb0d has been approved by jackh726
It is now in the queue for this repository.
:hourglass: Testing commit 1346728050928f5ed800dea034603af9d38bcb0d with merge 1635ed5da8e1eb6aceb9d11b4ebcd2ff732d653b...
:sunny: Test successful - checks-actions Approved by: jackh726 Pushing 1635ed5da8e1eb6aceb9d11b4ebcd2ff732d653b to master...
When a trait
Trait
has a transitive supertrait defined liketrait SuperTrait: AnotherTrait<Assoc = Ty>
, we've been generatingimpl AnotherTrait
fordyn Trait
andopaque type T: Trait
but without accounting for the associated type bound. This patch addsNormalize
clauses that correspond to such bounds.For example, given the following definition
we generate the following clauses
I think this doesn't contradict #203 as "we may legitimately assume that all things talking directly about
?Self
are true", but I'm not really sure if this is the right direction. One caveat is that this patch exacerbates "wastefulness" as in this comment as it adds theNormalize
clauses even when we're trying to prove other kinds of goals.Fixes #777