//@ check-pass #![feature(adt_const_params)] //~^ WARN the feature `adt_const_params` is incomplete #![feature(with_negative_coherence, negative_impls)] pub trait A {} pub trait C {} struct W(T); // Negative coherence: // Proving `W: !A<"">` requires proving `CONST alias-eq ""`, which requires proving // `CONST normalizes-to (?1c: &str)`. The type's region is uniquified, so it ends up being // put in to the canonical vars list with an infer region => ICE. impl C for T where T: A<""> {} impl C for W {} impl !A for W {} const CONST: &str = ""; fn main() {}