// revisions: any_lt static_lt //[static_lt] known-bug: unknown // This fails because we currently perform negative coherence in coherence mode. // This means that when looking for a negative predicate, we also assemble a // coherence-unknowable predicate. Since confirming the negative impl has region // obligations, we don't prefer the impl over the unknowable predicate // unconditionally and instead flounder. #![feature(negative_impls)] #![feature(with_negative_coherence)] trait Foo {} impl !Foo for &'static T {} trait Bar {} impl Bar for T where T: Foo {} #[cfg(any_lt)] impl Bar for &T {} //[any_lt]~^ ERROR conflicting implementations of trait `Bar` for type `&_` #[cfg(static_lt)] impl Bar for &'static T {} fn main() {}