[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