summaryrefslogtreecommitdiffstats
path: root/tests/ui/associated-item
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/associated-item
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--tests/ui/associated-item/ambiguous-associated-type-with-generics.fixed14
-rw-r--r--tests/ui/associated-item/ambiguous-associated-type-with-generics.rs14
-rw-r--r--tests/ui/associated-item/ambiguous-associated-type-with-generics.stderr9
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-bounds.rs (renamed from src/test/ui/associated-item/associated-item-duplicate-bounds.rs)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-bounds.stderr (renamed from src/test/ui/associated-item/associated-item-duplicate-bounds.stderr)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names-2.rs (renamed from src/test/ui/associated-item/associated-item-duplicate-names-2.rs)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names-2.stderr (renamed from src/test/ui/associated-item/associated-item-duplicate-names-2.stderr)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names-3.rs (renamed from src/test/ui/associated-item/associated-item-duplicate-names-3.rs)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names-3.stderr (renamed from src/test/ui/associated-item/associated-item-duplicate-names-3.stderr)2
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names.rs (renamed from src/test/ui/associated-item/associated-item-duplicate-names.rs)0
-rw-r--r--tests/ui/associated-item/associated-item-duplicate-names.stderr (renamed from src/test/ui/associated-item/associated-item-duplicate-names.stderr)0
-rw-r--r--tests/ui/associated-item/associated-item-enum.rs (renamed from src/test/ui/associated-item/associated-item-enum.rs)0
-rw-r--r--tests/ui/associated-item/associated-item-enum.stderr (renamed from src/test/ui/associated-item/associated-item-enum.stderr)0
-rw-r--r--tests/ui/associated-item/associated-item-two-bounds.rs (renamed from src/test/ui/associated-item/associated-item-two-bounds.rs)0
-rw-r--r--tests/ui/associated-item/impl-duplicate-methods.rs (renamed from src/test/ui/associated-item/impl-duplicate-methods.rs)0
-rw-r--r--tests/ui/associated-item/impl-duplicate-methods.stderr (renamed from src/test/ui/associated-item/impl-duplicate-methods.stderr)0
-rw-r--r--tests/ui/associated-item/issue-105449.rs59
-rw-r--r--tests/ui/associated-item/issue-48027.rs (renamed from src/test/ui/associated-item/issue-48027.rs)0
-rw-r--r--tests/ui/associated-item/issue-48027.stderr (renamed from src/test/ui/associated-item/issue-48027.stderr)0
-rw-r--r--tests/ui/associated-item/issue-87638.fixed (renamed from src/test/ui/associated-item/issue-87638.fixed)0
-rw-r--r--tests/ui/associated-item/issue-87638.rs (renamed from src/test/ui/associated-item/issue-87638.rs)0
-rw-r--r--tests/ui/associated-item/issue-87638.stderr (renamed from src/test/ui/associated-item/issue-87638.stderr)0
22 files changed, 97 insertions, 1 deletions
diff --git a/tests/ui/associated-item/ambiguous-associated-type-with-generics.fixed b/tests/ui/associated-item/ambiguous-associated-type-with-generics.fixed
new file mode 100644
index 000000000..23f715200
--- /dev/null
+++ b/tests/ui/associated-item/ambiguous-associated-type-with-generics.fixed
@@ -0,0 +1,14 @@
+// run-rustfix
+trait Trait<A> {}
+
+trait Assoc {
+ type Ty;
+}
+
+impl<A> Assoc for dyn Trait<A> {
+ type Ty = i32;
+}
+
+fn main() {
+ let _x: <dyn Trait<i32> as Assoc>::Ty; //~ ERROR ambiguous associated type
+}
diff --git a/tests/ui/associated-item/ambiguous-associated-type-with-generics.rs b/tests/ui/associated-item/ambiguous-associated-type-with-generics.rs
new file mode 100644
index 000000000..9c26e339a
--- /dev/null
+++ b/tests/ui/associated-item/ambiguous-associated-type-with-generics.rs
@@ -0,0 +1,14 @@
+// run-rustfix
+trait Trait<A> {}
+
+trait Assoc {
+ type Ty;
+}
+
+impl<A> Assoc for dyn Trait<A> {
+ type Ty = i32;
+}
+
+fn main() {
+ let _x: <dyn Trait<i32>>::Ty; //~ ERROR ambiguous associated type
+}
diff --git a/tests/ui/associated-item/ambiguous-associated-type-with-generics.stderr b/tests/ui/associated-item/ambiguous-associated-type-with-generics.stderr
new file mode 100644
index 000000000..97088b79f
--- /dev/null
+++ b/tests/ui/associated-item/ambiguous-associated-type-with-generics.stderr
@@ -0,0 +1,9 @@
+error[E0223]: ambiguous associated type
+ --> $DIR/ambiguous-associated-type-with-generics.rs:13:13
+ |
+LL | let _x: <dyn Trait<i32>>::Ty;
+ | ^^^^^^^^^^^^^^^^^^^^ help: use the fully-qualified path: `<dyn Trait<i32> as Assoc>::Ty`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0223`.
diff --git a/src/test/ui/associated-item/associated-item-duplicate-bounds.rs b/tests/ui/associated-item/associated-item-duplicate-bounds.rs
index 242a02353..242a02353 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-bounds.rs
+++ b/tests/ui/associated-item/associated-item-duplicate-bounds.rs
diff --git a/src/test/ui/associated-item/associated-item-duplicate-bounds.stderr b/tests/ui/associated-item/associated-item-duplicate-bounds.stderr
index f2e4ca524..f2e4ca524 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-bounds.stderr
+++ b/tests/ui/associated-item/associated-item-duplicate-bounds.stderr
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names-2.rs b/tests/ui/associated-item/associated-item-duplicate-names-2.rs
index 550c7ae39..550c7ae39 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names-2.rs
+++ b/tests/ui/associated-item/associated-item-duplicate-names-2.rs
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names-2.stderr b/tests/ui/associated-item/associated-item-duplicate-names-2.stderr
index 0b96a6bd7..0b96a6bd7 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names-2.stderr
+++ b/tests/ui/associated-item/associated-item-duplicate-names-2.stderr
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names-3.rs b/tests/ui/associated-item/associated-item-duplicate-names-3.rs
index 3a70a2f94..3a70a2f94 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names-3.rs
+++ b/tests/ui/associated-item/associated-item-duplicate-names-3.rs
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names-3.stderr b/tests/ui/associated-item/associated-item-duplicate-names-3.stderr
index bf4bd634c..d0c170620 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names-3.stderr
+++ b/tests/ui/associated-item/associated-item-duplicate-names-3.stderr
@@ -13,7 +13,7 @@ error[E0223]: ambiguous associated type
--> $DIR/associated-item-duplicate-names-3.rs:18:12
|
LL | let x: Baz::Bar = 5;
- | ^^^^^^^^ help: use fully-qualified syntax: `<Baz as Trait>::Bar`
+ | ^^^^^^^^ help: use the fully-qualified path: `<Baz as Foo>::Bar`
error: aborting due to 2 previous errors
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names.rs b/tests/ui/associated-item/associated-item-duplicate-names.rs
index 6677fad68..6677fad68 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names.rs
+++ b/tests/ui/associated-item/associated-item-duplicate-names.rs
diff --git a/src/test/ui/associated-item/associated-item-duplicate-names.stderr b/tests/ui/associated-item/associated-item-duplicate-names.stderr
index f89ea6e57..f89ea6e57 100644
--- a/src/test/ui/associated-item/associated-item-duplicate-names.stderr
+++ b/tests/ui/associated-item/associated-item-duplicate-names.stderr
diff --git a/src/test/ui/associated-item/associated-item-enum.rs b/tests/ui/associated-item/associated-item-enum.rs
index 30ba25815..30ba25815 100644
--- a/src/test/ui/associated-item/associated-item-enum.rs
+++ b/tests/ui/associated-item/associated-item-enum.rs
diff --git a/src/test/ui/associated-item/associated-item-enum.stderr b/tests/ui/associated-item/associated-item-enum.stderr
index ebf3c5499..ebf3c5499 100644
--- a/src/test/ui/associated-item/associated-item-enum.stderr
+++ b/tests/ui/associated-item/associated-item-enum.stderr
diff --git a/src/test/ui/associated-item/associated-item-two-bounds.rs b/tests/ui/associated-item/associated-item-two-bounds.rs
index 25b0d5a56..25b0d5a56 100644
--- a/src/test/ui/associated-item/associated-item-two-bounds.rs
+++ b/tests/ui/associated-item/associated-item-two-bounds.rs
diff --git a/src/test/ui/associated-item/impl-duplicate-methods.rs b/tests/ui/associated-item/impl-duplicate-methods.rs
index 328d54d5a..328d54d5a 100644
--- a/src/test/ui/associated-item/impl-duplicate-methods.rs
+++ b/tests/ui/associated-item/impl-duplicate-methods.rs
diff --git a/src/test/ui/associated-item/impl-duplicate-methods.stderr b/tests/ui/associated-item/impl-duplicate-methods.stderr
index 6f753845a..6f753845a 100644
--- a/src/test/ui/associated-item/impl-duplicate-methods.stderr
+++ b/tests/ui/associated-item/impl-duplicate-methods.stderr
diff --git a/tests/ui/associated-item/issue-105449.rs b/tests/ui/associated-item/issue-105449.rs
new file mode 100644
index 000000000..dd14e05fd
--- /dev/null
+++ b/tests/ui/associated-item/issue-105449.rs
@@ -0,0 +1,59 @@
+// check-pass
+// compile-flags: -C debug_assertions=yes -Zunstable-options
+
+#[allow(dead_code)]
+fn problematic_function<Space>()
+where
+ DefaultAlloc: FinAllok<R1, Space>,
+{
+ let e = Edge2dElement;
+ let _ = Into::<Point>::into(e.map_reference_coords());
+}
+impl<N> Allocator<N, R0> for DefaultAlloc {
+ type Buffer = MStorage;
+}
+impl<N> Allocator<N, R1> for DefaultAlloc {
+ type Buffer = MStorage;
+}
+impl<N, D> From<VectorN<N, D>> for Point
+where
+ DefaultAlloc: Allocator<N, D>,
+{
+ fn from(_: VectorN<N, D>) -> Self {
+ unimplemented!()
+ }
+}
+impl<GeometryDim, NodalDim> FinAllok<GeometryDim, NodalDim> for DefaultAlloc
+where
+ DefaultAlloc: Allocator<Ure, GeometryDim>,
+ DefaultAlloc: Allocator<Ure, NodalDim>
+{
+}
+impl FiniteElement<R1> for Edge2dElement {
+ fn map_reference_coords(&self) -> VectorN<Ure, R1> {
+ unimplemented!()
+ }
+}
+type VectorN<N, R> = (N, R, <DefaultAlloc as Allocator<N, R>>::Buffer);
+struct DefaultAlloc;
+struct R0;
+struct R1;
+struct MStorage;
+struct Point;
+struct Edge2dElement;
+struct Ure;
+trait Allocator<N, R> {
+ type Buffer;
+}
+trait FinAllok<GeometryDim, NodalDim>:
+ Allocator<Ure, GeometryDim> +
+ Allocator<Ure, NodalDim> +
+{
+}
+trait FiniteElement<Rau>
+where
+ DefaultAlloc: FinAllok<Rau, Rau>,
+{
+ fn map_reference_coords(&self) -> VectorN<Ure, Rau>;
+}
+fn main() {}
diff --git a/src/test/ui/associated-item/issue-48027.rs b/tests/ui/associated-item/issue-48027.rs
index d2b51184c..d2b51184c 100644
--- a/src/test/ui/associated-item/issue-48027.rs
+++ b/tests/ui/associated-item/issue-48027.rs
diff --git a/src/test/ui/associated-item/issue-48027.stderr b/tests/ui/associated-item/issue-48027.stderr
index 45ea41933..45ea41933 100644
--- a/src/test/ui/associated-item/issue-48027.stderr
+++ b/tests/ui/associated-item/issue-48027.stderr
diff --git a/src/test/ui/associated-item/issue-87638.fixed b/tests/ui/associated-item/issue-87638.fixed
index b68977768..b68977768 100644
--- a/src/test/ui/associated-item/issue-87638.fixed
+++ b/tests/ui/associated-item/issue-87638.fixed
diff --git a/src/test/ui/associated-item/issue-87638.rs b/tests/ui/associated-item/issue-87638.rs
index 5a60b20fd..5a60b20fd 100644
--- a/src/test/ui/associated-item/issue-87638.rs
+++ b/tests/ui/associated-item/issue-87638.rs
diff --git a/src/test/ui/associated-item/issue-87638.stderr b/tests/ui/associated-item/issue-87638.stderr
index cf6083444..cf6083444 100644
--- a/src/test/ui/associated-item/issue-87638.stderr
+++ b/tests/ui/associated-item/issue-87638.stderr