diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/rustdoc/issue-80233-normalize-auto-trait.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/rustdoc/issue-80233-normalize-auto-trait.rs')
-rw-r--r-- | src/test/rustdoc/issue-80233-normalize-auto-trait.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/rustdoc/issue-80233-normalize-auto-trait.rs b/src/test/rustdoc/issue-80233-normalize-auto-trait.rs new file mode 100644 index 000000000..515e617b4 --- /dev/null +++ b/src/test/rustdoc/issue-80233-normalize-auto-trait.rs @@ -0,0 +1,37 @@ +// Regression test for issue #80233 +// Tests that we don't ICE when processing auto traits + +#![crate_type = "lib"] +pub trait Trait1 {} + +pub trait Trait2 { + type Type2; +} + +pub trait Trait3 { + type Type3; +} + +impl Trait2 for Struct1 { + type Type2 = Struct1; +} + +impl<I: Trait2> Trait2 for Vec<I> { + type Type2 = Vec<I::Type2>; +} + +impl<T: Trait1> Trait3 for T { + type Type3 = Struct1; +} + +impl<T: Trait3> Trait3 for Vec<T> { + type Type3 = Vec<T::Type3>; +} + +pub struct Struct1 {} + +// @has issue_80233_normalize_auto_trait/struct.Question.html +// @has - '//h3[@class="code-header in-band"]' 'impl<T> Send for Question<T>' +pub struct Question<T: Trait1> { + pub ins: <<Vec<T> as Trait3>::Type3 as Trait2>::Type2, +} |