summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs')
-rw-r--r--src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs b/src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs
deleted file mode 100644
index 77e4bd4d6..000000000
--- a/src/test/ui/associated-type-bounds/order-dependent-bounds-issue-54121.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-// check-pass
-
-// From https://github.com/rust-lang/rust/issues/54121/
-//
-// Whether the code compiled depended on the order of the trait bounds in
-// `type T: Tr<u8, u8> + Tr<u16, u16>`
-// But both should compile as order shouldn't matter.
-
-trait Tr<A, B> {
- fn exec(a: A, b: B);
-}
-
-trait P {
- // This compiled successfully
- type T: Tr<u16, u16> + Tr<u8, u8>;
-}
-
-trait Q {
- // This didn't compile
- type T: Tr<u8, u8> + Tr<u16, u16>;
-}
-
-#[allow(dead_code)]
-fn f<S: P>() {
- <S as P>::T::exec(0u8, 0u8)
-}
-
-#[allow(dead_code)]
-fn g<S: Q>() {
- // A mismatched types error was emitted on this line.
- <S as Q>::T::exec(0u8, 0u8)
-}
-
-// Another reproduction of the same issue
-trait Trait {
- type Type: Into<Self::Type1> + Into<Self::Type2> + Copy;
- type Type1;
- type Type2;
-}
-
-#[allow(dead_code)]
-fn foo<T: Trait>(x: T::Type) {
- let _1: T::Type1 = x.into();
- let _2: T::Type2 = x.into();
-}
-
-fn main() { }