1 // Regression test for #92111.
3 // The issue was that we normalize trait bounds before caching
4 // results of selection. Checking that `impl Tr for S` requires
5 // checking `S: !Drop` because it cannot overlap with the blanket
6 // impl. Then we save the (unsatisfied) result from checking `S: Drop`.
7 // Then the call to `a` checks whether `S: ~const Drop` but we normalize
8 // it to `S: Drop` which the cache claims to be unsatisfied.
12 #![feature(const_trait_impl)]
13 #![feature(const_fn_trait_bound)]
18 impl<T: Drop> Tr for T {}
25 const fn a<T: ~const Drop>(t: T) {}