// Test that we don't ICE when computing the drop types for //@ ignore-compare-mode-polonius (explicit revisions) //@ revisions: nll polonius //@ [polonius] compile-flags: -Zpolonius=next trait Decode<'a> { type Decoder; } trait NonImplementedTrait { type Assoc; } struct NonImplementedStruct; pub struct ADecoder<'a> { b: >::Decoder, } fn make_a_decoder<'a>() -> ADecoder<'a> { //~^ ERROR the trait bound //[nll]~| ERROR the trait bound panic!() } struct B; impl<'a> Decode<'a> for B { type Decoder = BDecoder; //~^ ERROR the trait bound } pub struct BDecoder { non_implemented: ::Assoc, //~^ ERROR the trait bound } fn main() {}