summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-types/missing-associated-types.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/associated-types/missing-associated-types.stderr')
-rw-r--r--src/test/ui/associated-types/missing-associated-types.stderr129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/missing-associated-types.stderr b/src/test/ui/associated-types/missing-associated-types.stderr
new file mode 100644
index 000000000..f617df984
--- /dev/null
+++ b/src/test/ui/associated-types/missing-associated-types.stderr
@@ -0,0 +1,129 @@
+error[E0225]: only auto traits can be used as additional traits in a trait object
+ --> $DIR/missing-associated-types.rs:12:32
+ |
+LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
+ | -------- ^^^^^^^^ additional non-auto trait
+ | |
+ | first non-auto trait
+ |
+ = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs> {}`
+ = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
+
+error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `Add`), `Output` (from trait `Mul`), `Output` (from trait `Sub`) must be specified
+ --> $DIR/missing-associated-types.rs:12:21
+ |
+LL | type A;
+ | ------ `A` defined here
+...
+LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
+ | ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ associated type `A` must be specified
+ | | | |
+ | | | associated type `Output` must be specified
+ | | associated type `Output` must be specified
+ | associated type `Output` must be specified
+ |
+help: specify the associated types
+ |
+LL | type Foo<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs, Output = Type> + Y<Rhs, A = Type>;
+ | ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
+
+error[E0225]: only auto traits can be used as additional traits in a trait object
+ --> $DIR/missing-associated-types.rs:15:32
+ |
+LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
+ | -------- ^^^^^^^^ additional non-auto trait
+ | |
+ | first non-auto trait
+ |
+ = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs> {}`
+ = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
+
+error[E0191]: the value of the associated types `A` (from trait `Z`), `B` (from trait `Z`), `Output` (from trait `Add`), `Output` (from trait `Div`), `Output` (from trait `Div`), `Output` (from trait `Mul`), `Output` (from trait `Sub`) must be specified
+ --> $DIR/missing-associated-types.rs:15:21
+ |
+LL | type A;
+ | ------ `A` defined here
+LL | type B;
+ | ------ `B` defined here
+...
+LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
+ | ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ associated types `A`, `B`, `Output` must be specified
+ | | | |
+ | | | associated types `Output` (from trait `Mul`), `Output` (from trait `Div`) must be specified
+ | | associated type `Output` must be specified
+ | associated type `Output` must be specified
+ |
+help: consider introducing a new type parameter, adding `where` constraints using the fully-qualified path to the associated types
+ --> $DIR/missing-associated-types.rs:15:43
+ |
+LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
+ | ^^^^^^
+help: specify the associated types
+ |
+LL | type Bar<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs> + Z<Rhs, A = Type, B = Type, Output = Type>;
+ | ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+error[E0225]: only auto traits can be used as additional traits in a trait object
+ --> $DIR/missing-associated-types.rs:18:32
+ |
+LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
+ | -------- ^^^^^^^^ additional non-auto trait
+ | |
+ | first non-auto trait
+ |
+ = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + Y<Rhs> {}`
+ = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
+
+error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `Add`), `Output` (from trait `Sub`) must be specified
+ --> $DIR/missing-associated-types.rs:18:21
+ |
+LL | type A;
+ | ------ `A` defined here
+...
+LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
+ | ^^^^^^^^ ^^^^^^^^ ^^^^^^ associated type `A` must be specified
+ | | |
+ | | associated type `Output` must be specified
+ | associated type `Output` must be specified
+ |
+help: specify the associated types
+ |
+LL | type Baz<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Y<Rhs, A = Type>;
+ | ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
+
+error[E0225]: only auto traits can be used as additional traits in a trait object
+ --> $DIR/missing-associated-types.rs:21:32
+ |
+LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
+ | -------- ^^^^^^^^ additional non-auto trait
+ | |
+ | first non-auto trait
+ |
+ = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + Fine<Rhs> {}`
+ = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
+
+error[E0191]: the value of the associated types `Output` (from trait `Add`), `Output` (from trait `Sub`) must be specified
+ --> $DIR/missing-associated-types.rs:21:21
+ |
+LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
+ | ^^^^^^^^ ^^^^^^^^ associated type `Output` must be specified
+ | |
+ | associated type `Output` must be specified
+ |
+help: specify the associated types
+ |
+LL | type Bat<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Fine<Rhs>;
+ | ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
+
+error[E0191]: the value of the associated types `Output` (from trait `Div`), `Output` (from trait `Mul`) must be specified
+ --> $DIR/missing-associated-types.rs:24:21
+ |
+LL | type Bal<Rhs> = dyn X<Rhs>;
+ | ^^^^^^ associated types `Output` (from trait `Mul`), `Output` (from trait `Div`) must be specified
+ |
+ = help: consider introducing a new type parameter, adding `where` constraints using the fully-qualified path to the associated types
+
+error: aborting due to 9 previous errors
+
+Some errors have detailed explanations: E0191, E0225.
+For more information about an error, try `rustc --explain E0191`.