diff options
| author | Michael Goulet <michael@errs.io> | 2025-05-12 14:22:48 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-05-12 21:04:38 +0000 |
| commit | df1da673f75937a1a8ebd4ad09b5ffb244df6927 (patch) | |
| tree | a6e44c05630f0ea664e21a4b092bc5b1d85466e7 /tests/ui/drop/dropck-normalize-errors.rs | |
| parent | 1a7f290a9aedc138edf9c88a82019292019754d9 (diff) | |
| download | rust-df1da673f75937a1a8ebd4ad09b5ffb244df6927.tar.gz rust-df1da673f75937a1a8ebd4ad09b5ffb244df6927.zip | |
Flush errors before deep normalize in dropck_outlives
Diffstat (limited to 'tests/ui/drop/dropck-normalize-errors.rs')
| -rw-r--r-- | tests/ui/drop/dropck-normalize-errors.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ui/drop/dropck-normalize-errors.rs b/tests/ui/drop/dropck-normalize-errors.rs new file mode 100644 index 00000000000..793122bd33d --- /dev/null +++ b/tests/ui/drop/dropck-normalize-errors.rs @@ -0,0 +1,31 @@ +// Test that we don't ICE when computing the drop types for + +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 + //~| 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() {} |
