It seems chalk is unable to deduce projection type of trait object types when it's not specified in dyn notation but the trait has supertrait with its projection type specified.
I expect the following tests to succeed but all three fail. This is because according to the rules described in #203, chalk yields AliasEq(<dyn Trait as Base>::Output = usize) as a subgoal but there's no "fact" clause for that to prove it. Shouldn't the AliasEq clause be also produced as a fact under these circumstances, or should we explicitly pass the AliasEq clause?
Context: https://github.com/rust-lang/rust-analyzer/issues/13169
It seems chalk is unable to deduce projection type of trait object types when it's not specified in
dyn
notation but the trait has supertrait with its projection type specified.I expect the following tests to succeed but all three fail. This is because according to the rules described in #203, chalk yields
AliasEq(<dyn Trait as Base>::Output = usize)
as a subgoal but there's no "fact" clause for that to prove it. Shouldn't theAliasEq
clause be also produced as a fact under these circumstances, or should we explicitly pass theAliasEq
clause?