| // 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: <B as Decode<'a>>::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: <NonImplementedStruct as NonImplementedTrait>::Assoc, |
| //~^ ERROR the trait bound |
| } |
| |
| fn main() {} |