diff options
Diffstat (limited to '')
-rw-r--r-- | tests/ui/associated-item/ambiguous-associated-type-with-generics.fixed | 14 | ||||
-rw-r--r-- | tests/ui/associated-item/ambiguous-associated-type-with-generics.rs | 14 | ||||
-rw-r--r-- | tests/ui/associated-item/ambiguous-associated-type-with-generics.stderr | 9 | ||||
-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.rs | 59 | ||||
-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 |