[crater] Normalize opaques to infer vars eagerly in AssocTypeNormalizer by compiler-errors · Pull Request #120798 · rust-lang/rust (original) (raw)
nearly all of the unknown tests are a "concrete type differs from previous defining opaque type use" where one of the hidden types is {type error}
. Separate from this PR, we should not emit these errors if the opaques contain a type error.
I think that most of these errors are caused by structurally instantiating opaque types, e.g. coral-0.9.2
pub struct Message { pub message: String, pub children: Option<Vec>, }
impl Message {
pub fn unroll(&self) -> impl Iterator<Item = &Message> {
let mut messages = Vec::new();
messages.push(self);
if let Some(ref children) = self.children {
for child in children {
messages.extend(child.unroll());
// ^ the returned iter is opaque::<'fresh>
}
}
messages.into_iter()
}
}
unless we want to look through 800 regressions to figure out how many of them are actually the "needs eager inference progress case of recur_rpit().function()
" we'd need to also change the old solver to use semantic equality for opaques