Closed
Description
fn foo<T>(x: T) {
std::mem::discriminant(&x);
}
ICEs with:
error: internal compiler error: compiler/rustc_middle/src/ty/sty.rs:2256:17: `discriminant_ty` applied to unexpected type: Placeholder(Placeholder { universe: U0, name: Anon(0) })
We probably shouldn't be assembling a builtin discriminant candidate for placeholders at all -- that is, we shouldn't fix it by just assembling <!0t as DiscriminantKind>::Discriminant
like the Ty::discriminant_ty
impl is doing, but instead treat it as Err(NoSolution)
to avoid ambiguity.