rust
rust copied to clipboard
hir::Generics: convert `has_where_clause_predicates` field into method
Thus reducing struct size.
Recently changed, so r? @compiler-errors
The job x86_64-gnu-llvm-12 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
........................................................................................ 88/13312
......................................................................iiiiiiiiiiiiii.... 176/13312
...............i.i.................ii...i............................................... 264/13312
........................................................................................ 352/13312
.....................F.................F.F....................F................F........ 440/13312
...........................F............................................................ 528/13312
......................................F................................................. 704/13312
...........................................................i............................ 792/13312
.......................................................i................................ 880/13312
........................................................................................ 968/13312
---
......................................F................................................. 11176/13312
........................................................................................ 11264/13312
........................................................................................ 11352/13312
........................................................................................ 11440/13312
..........................................................FF............................ 11528/13312
.........F................F........................F...................F................ 11616/13312
........................................F............................................... 11704/13312
......................................................................................F. 11880/13312
........................................................................................ 11968/13312
........................................................................................ 12056/13312
........................................................................................ 12144/13312
........................................................................................ 12144/13312
........................................F....................F.......................... 12232/13312
........................................................................................ 12408/13312
....................................................i................................... 12496/13312
.............F.......................................................................... 12584/13312
........................................................................................ 12672/13312
---
6 |
7 help: consider further restricting `Self`
8 |
- LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get {}
- | +++++++++++++++
+ LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
11
12 error: aborting due to previous error
13
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-for-unimpl-trait/associated-types-for-unimpl-trait.stderr
diff of fixed:
7 }
8
9 trait Other {
- fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get {}
+ fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
11 //~^ ERROR the trait bound `Self: Get` is not satisfied
13
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-for-unimpl-trait/associated-types-for-unimpl-trait.fixed
To only update this specific test, also pass `--test-args associated-types/associated-types-for-unimpl-trait.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/associated-types-for-unimpl-trait.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-for-unimpl-trait" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-for-unimpl-trait/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `Self: Get` is not satisfied
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) {}
| ^^^^^^^^^^^^^^^^^^^^ the trait `Get` is not implemented for `Self`
help: consider further restricting `Self`
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
6 |
7 help: consider further restricting `Self`
8 |
- LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get {}
- | +++++++++++++++
+ LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
11
12 error: aborting due to previous error
13
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-no-suitable-supertrait-2/associated-types-no-suitable-supertrait-2.stderr
To only update this specific test, also pass `--test-args associated-types/associated-types-no-suitable-supertrait-2.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/associated-types-no-suitable-supertrait-2.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-no-suitable-supertrait-2" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-no-suitable-supertrait-2/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `Self: Get` is not satisfied
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) {}
| ^^^^^^^^^^^^^^^^^^^^ the trait `Get` is not implemented for `Self`
help: consider further restricting `Self`
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
12 |
13 help: consider further restricting `Self`
14 |
- LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get {}
- | +++++++++++++++
+ LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
17
18 error: aborting due to 2 previous errors
19
---
To only update this specific test, also pass `--test-args associated-types/associated-types-no-suitable-supertrait.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/associated-types-no-suitable-supertrait.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-no-suitable-supertrait" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-no-suitable-supertrait/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `(T, U): Get` is not satisfied
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <(T, U) as Get>::Value) {}
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Get` is not implemented for `(T, U)`
error[E0277]: the trait bound `Self: Get` is not satisfied
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value) {}
| ^^^^^^^^^^^^^^^^^^^^ the trait `Get` is not implemented for `Self`
help: consider further restricting `Self`
|
|
LL | fn uhoh<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get {}
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.
---
6 |
7 help: consider further restricting `Self`
8 |
- LL | fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get;
- | +++++++++++++++
+ LL | fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get;
11
12 error: aborting due to previous error
13
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default/associated-types-projection-to-unrelated-trait-in-method-without-default.stderr
diff of fixed:
7 }
8
9 trait Other {
- fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value) where Self: Get;
+ fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get;
11 //~^ ERROR E0277
13
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default/associated-types-projection-to-unrelated-trait-in-method-without-default.fixed
To only update this specific test, also pass `--test-args associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-projection-to-unrelated-trait-in-method-without-default/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `Self: Get` is not satisfied
|
|
LL | fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value);
| ^^^^^^^^^^^^^^^^^^^^ the trait `Get` is not implemented for `Self`
help: consider further restricting `Self`
|
|
LL | fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value), Self: Get;
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
9 = help: unsized locals are gated as an unstable feature
10 help: consider further restricting the associated type
11 |
- LL | fn foo<T:Get>(t: T) where <T as Get>::Value: Sized {
- | ++++++++++++++++++++++++++++++
+ LL | fn foo<T:Get>(t: T), <T as Get>::Value: Sized {
14
15 error: aborting due to previous error
16
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-unsized/associated-types-unsized.stderr
diff of fixed:
6 fn get(&self) -> <Self as Get>::Value;
8
8
- fn foo<T:Get>(t: T) where <T as Get>::Value: Sized {
+ fn foo<T:Get>(t: T), <T as Get>::Value: Sized {
10 let x = t.get(); //~ ERROR the size for values of type
12
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-unsized/associated-types-unsized.fixed
To only update this specific test, also pass `--test-args associated-types/associated-types-unsized.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/associated-types-unsized.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-unsized" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/associated-types-unsized/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the size for values of type `<T as Get>::Value` cannot be known at compilation time
|
|
LL | let x = t.get(); //~ ERROR the size for values of type
|
|
= help: the trait `Sized` is not implemented for `<T as Get>::Value`
= help: unsized locals are gated as an unstable feature
help: consider further restricting the associated type
|
|
LL | fn foo<T:Get>(t: T), <T as Get>::Value: Sized {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
108 | ^^^^^ required by this bound in `Foo25::Bar`
109 help: consider further restricting the associated type
110 |
- LL | trait Foo25<T: Clone> where <Self as Foo25<T>>::Baz: Clone {
- | ++++++++++++++++++++++++++++++++++++
+ LL | trait Foo25<T: Clone>, <Self as Foo25<T>>::Baz: Clone {
113
113
114 error[E0277]: the trait bound `T: Clone` is not satisfied
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-suitability/defaults-suitability.stderr
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-suitability/defaults-suitability.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args associated-types/defaults-suitability.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/associated-types/defaults-suitability.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-suitability" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-suitability/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `NotClone: Clone` is not satisfied
|
|
LL | type Ty: Clone = NotClone;
| ^^^^^^^^ the trait `Clone` is not implemented for `NotClone`
note: required by a bound in `Tr::Ty`
--> /checkout/src/test/ui/associated-types/defaults-suitability.rs:13:14
|
|
LL | type Ty: Clone = NotClone;
| ^^^^^ required by this bound in `Tr::Ty`
help: consider annotating `NotClone` with `#[derive(Clone)]`
LL | #[derive(Clone)]
|
error[E0277]: the trait bound `NotClone: Clone` is not satisfied
|
|
LL | type Ty = NotClone;
| ^^^^^^^^ the trait `Clone` is not implemented for `NotClone`
note: required by a bound in `Tr2::Ty`
--> /checkout/src/test/ui/associated-types/defaults-suitability.rs:20:15
|
LL | Self::Ty: Clone,
LL | Self::Ty: Clone,
| ^^^^^ required by this bound in `Tr2::Ty`
LL | {
LL | type Ty = NotClone;
| -- required by a bound in this
help: consider annotating `NotClone` with `#[derive(Clone)]`
LL | #[derive(Clone)]
|
error[E0277]: the trait bound `T: Clone` is not satisfied
|
|
LL | type Bar: Clone = Vec<T>;
| ^^^^^^ the trait `Clone` is not implemented for `T`
= note: required because of the requirements on the impl of `Clone` for `Vec<T>`
note: required by a bound in `Foo::Bar`
--> /checkout/src/test/ui/associated-types/defaults-suitability.rs:28:15
|
|
LL | type Bar: Clone = Vec<T>;
| ^^^^^ required by this bound in `Foo::Bar`
help: consider restricting type parameter `T`
|
LL | trait Foo<T: std::clone::Clone> {
error[E0277]: the trait bound `(): Foo<Self>` is not satisfied
|
|
LL | type Assoc: Foo<Self> = ();
| ^^ the trait `Foo<Self>` is not implemented for `()`
|
note: required by a bound in `Bar::Assoc`
|
|
LL | type Assoc: Foo<Self> = ();
| ^^^^^^^^^ required by this bound in `Bar::Assoc`
error[E0277]: the trait bound `NotClone: IsU8<NotClone>` is not satisfied
|
|
LL | type Assoc = NotClone;
| ^^^^^^^^ the trait `IsU8<NotClone>` is not implemented for `NotClone`
note: required by a bound in `D::Assoc`
--> /checkout/src/test/ui/associated-types/defaults-suitability.rs:53:18
|
|
LL | Self::Assoc: IsU8<Self::Assoc>,
| ^^^^^^^^^^^^^^^^^ required by this bound in `D::Assoc`
...
LL | type Assoc = NotClone;
| ----- required by a bound in this
error[E0277]: the trait bound `<Self as Foo2<T>>::Baz: Clone` is not satisfied
|
|
LL | type Bar: Clone = Vec<Self::Baz>;
| ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `<Self as Foo2<T>>::Baz`
|
= note: required because of the requirements on the impl of `Clone` for `Vec<<Self as Foo2<T>>::Baz>`
note: required by a bound in `Foo2::Bar`
|
|
LL | type Bar: Clone = Vec<Self::Baz>;
| ^^^^^ required by this bound in `Foo2::Bar`
|
|
LL | trait Foo2<T> where <Self as Foo2<T>>::Baz: Clone {
error[E0277]: the trait bound `<Self as Foo25<T>>::Baz: Clone` is not satisfied
|
|
LL | type Bar: Clone = Vec<Self::Baz>;
| ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `<Self as Foo25<T>>::Baz`
|
= note: required because of the requirements on the impl of `Clone` for `Vec<<Self as Foo25<T>>::Baz>`
note: required by a bound in `Foo25::Bar`
|
|
LL | type Bar: Clone = Vec<Self::Baz>;
| ^^^^^ required by this bound in `Foo25::Bar`
|
|
LL | trait Foo25<T: Clone>, <Self as Foo25<T>>::Baz: Clone {
error[E0277]: the trait bound `T: Clone` is not satisfied
|
LL | type Baz = T;
| ^ the trait `Clone` is not implemented for `T`
|
|
note: required by a bound in `Foo3::Baz`
--> /checkout/src/test/ui/associated-types/defaults-suitability.rs:84:16
|
LL | Self::Baz: Clone,
| ^^^^^ required by this bound in `Foo3::Baz`
LL | type Baz = T;
| --- required by a bound in this
help: consider further restricting type parameter `T`
|
|
LL | Self::Baz: Clone, T: std::clone::Clone
error: aborting due to 8 previous errors
For more information about this error, try `rustc --explain E0277`.
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---- [ui] src/test/ui/async-await/issue-70818.rs stdout ----
diff of stderr:
9 |
10 LL | async { (ty, ty1) }
11 | ^^^ has type `U` which is not `Send`
- help: consider restricting type parameter `U`
+ help: consider further restricting type parameter `U`
13 |
- LL | fn foo<T: Send, U: std::marker::Send>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send {
- | +++++++++++++++++++
+ LL | fn foo<T: Send, U>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send, U: std::marker::Send {
16
17 error: aborting due to previous error
18
---
To only update this specific test, also pass `--test-args async-await/issue-70818.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/async-await/issue-70818.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-70818" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-70818/auxiliary"
stdout: none
--- stderr -------------------------------
error: future cannot be sent between threads safely
|
|
LL | fn foo<T: Send, U>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future created by async block is not `Send`
|
note: captured value is not `Send`
|
|
LL | async { (ty, ty1) }
| ^^^ has type `U` which is not `Send`
help: consider further restricting type parameter `U`
|
LL | fn foo<T: Send, U>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send, U: std::marker::Send {
error: aborting due to previous error
------------------------------------------
---
31 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
33 |
- LL | fn add<A: Add<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
36
37 error[E0382]: use of moved value: `lhs`
38 --> $DIR/binop-consume-args.rs:13:10
65 LL | drop(rhs);
66 | ^^^ value used here after move
67 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
69 |
- LL | fn sub<A: Sub<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
72
73 error[E0382]: use of moved value: `lhs`
74 --> $DIR/binop-consume-args.rs:19:10
101 LL | drop(rhs);
102 | ^^^ value used here after move
103 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
105 |
- LL | fn mul<A: Mul<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
108
109 error[E0382]: use of moved value: `lhs`
110 --> $DIR/binop-consume-args.rs:25:10
137 LL | drop(rhs);
138 | ^^^ value used here after move
139 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
141 |
- LL | fn div<A: Div<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
144
145 error[E0382]: use of moved value: `lhs`
146 --> $DIR/binop-consume-args.rs:31:10
173 LL | drop(rhs);
174 | ^^^ value used here after move
175 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
177 |
- LL | fn rem<A: Rem<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
180
181 error[E0382]: use of moved value: `lhs`
182 --> $DIR/binop-consume-args.rs:37:10
209 LL | drop(rhs);
210 | ^^^ value used here after move
211 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
213 |
- LL | fn bitand<A: BitAnd<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
216
217 error[E0382]: use of moved value: `lhs`
218 --> $DIR/binop-consume-args.rs:43:10
245 LL | drop(rhs);
246 | ^^^ value used here after move
247 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
249 |
- LL | fn bitor<A: BitOr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
252
253 error[E0382]: use of moved value: `lhs`
254 --> $DIR/binop-consume-args.rs:49:10
281 LL | drop(rhs);
282 | ^^^ value used here after move
283 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
285 |
- LL | fn bitxor<A: BitXor<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
288
289 error[E0382]: use of moved value: `lhs`
290 --> $DIR/binop-consume-args.rs:55:10
317 LL | drop(rhs);
318 | ^^^ value used here after move
319 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
321 |
- LL | fn shl<A: Shl<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
324
325 error[E0382]: use of moved value: `lhs`
326 --> $DIR/binop-consume-args.rs:61:10
353 LL | drop(rhs);
354 | ^^^ value used here after move
355 |
- help: consider restricting type parameter `B`
+ help: consider further restricting type parameter `B`
357 |
- LL | fn shr<A: Shr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
- | ++++++
+ LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
360
361 error: aborting due to 20 previous errors
362
---
To only update this specific test, also pass `--test-args binop/binop-consume-args.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/binop/binop-consume-args.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/binop/binop-consume-args" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/binop/binop-consume-args/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0382]: use of moved value: `lhs`
|
|
LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs + rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/arith.rs:114:12
|
|
LL | fn add(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn add<A: Add<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:8:10
|
|
LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs + rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:13:10
|
|
LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs - rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/arith.rs:221:12
|
|
LL | fn sub(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn sub<A: Sub<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:14:10
|
|
LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs - rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:19:10
|
|
LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs * rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/arith.rs:350:12
|
|
LL | fn mul(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn mul<A: Mul<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:20:10
|
|
LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs * rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:25:10
|
|
LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs / rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/arith.rs:483:12
|
|
LL | fn div(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn div<A: Div<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:26:10
|
|
LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs / rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:31:10
|
|
LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs % rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/arith.rs:585:12
|
|
LL | fn rem(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn rem<A: Rem<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:32:10
|
|
LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs % rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:37:10
|
|
LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs & rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/bit.rs:163:15
|
|
LL | fn bitand(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn bitand<A: BitAnd<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:38:10
|
|
LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs & rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:43:10
|
|
LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs | rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/bit.rs:264:14
|
|
LL | fn bitor(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn bitor<A: BitOr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:44:10
|
|
LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs | rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:49:10
|
|
LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs ^ rhs;
| --------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/bit.rs:365:15
|
|
LL | fn bitxor(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn bitxor<A: BitXor<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:50:10
|
|
LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs ^ rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:55:10
|
|
LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs << rhs;
| ---------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/bit.rs:463:12
|
|
LL | fn shl(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn shl<A: Shl<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:56:10
|
|
LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs << rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error[E0382]: use of moved value: `lhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:61:10
|
|
LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
LL | lhs >> rhs;
| ---------- `lhs` moved due to usage in operator
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
| ^^^ value used here after move
note: calling this operator moves the left-hand side
--> /checkout/library/core/src/ops/bit.rs:582:12
|
|
LL | fn shr(self, rhs: Rhs) -> Self::Output;
help: consider further restricting this bound
|
|
LL | fn shr<A: Shr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
error[E0382]: use of moved value: `rhs`
--> /checkout/src/test/ui/binop/binop-consume-args.rs:62:10
|
|
LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
| --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
LL | lhs >> rhs;
| --- value moved here
LL | drop(lhs); //~ ERROR use of moved value: `lhs`
LL | drop(rhs); //~ ERROR use of moved value: `rhs`
| ^^^ value used here after move
help: consider further restricting type parameter `B`
|
|
LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B), B: Copy {
error: aborting due to 20 previous errors
For more information about this error, try `rustc --explain E0382`.
For more information about this error, try `rustc --explain E0382`.
------------------------------------------
---- [ui] src/test/ui/partialeq_help.rs stdout ----
diff of stderr:
7 = help: the trait `PartialEq<T>` is not implemented for `&T`
8 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
9 |
- LL | fn foo<T: PartialEq>(a: &T, b: T) where &T: PartialEq<T> {
- | ++++++++++++++++++++++
+ LL | fn foo<T: PartialEq>(a: &T, b: T), &T: PartialEq<T> {
12
12
13 error[E0277]: can't compare `&T` with `T`
19 = help: the trait `PartialEq<T>` is not implemented for `&T`
20 help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
21 |
- LL | fn foo2<T: PartialEq>(a: &T, b: T) where &T: PartialEq<T> {
- | ++++++++++++++++
+ LL | fn foo2<T: PartialEq>(a: &T, b: T) where, &T: PartialEq<T> {
24
25 error: aborting due to 2 previous errors
26
---
To only update this specific test, also pass `--test-args partialeq_help.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/partialeq_help.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/partialeq_help" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/partialeq_help/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: can't compare `&T` with `T`
|
|
LL | a == b; //~ ERROR E0277
| ^^ no implementation for `&T == T`
|
= help: the trait `PartialEq<T>` is not implemented for `&T`
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn foo<T: PartialEq>(a: &T, b: T), &T: PartialEq<T> {
error[E0277]: can't compare `&T` with `T`
|
|
LL | a == b; //~ ERROR E0277
| ^^ no implementation for `&T == T`
|
= help: the trait `PartialEq<T>` is not implemented for `&T`
help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn foo2<T: PartialEq>(a: &T, b: T) where, &T: PartialEq<T> {
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.
---
diff of stderr:
139 --> $DIR/edition-lint-infer-outlives-multispan.rs:77:38
140 |
141 LL | struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b> {
- | ^^^^ ^^^^
+ | ^^^^ ^^^^ ^
144 help: remove these bounds
145 |
151 --> $DIR/edition-lint-infer-outlives-multispan.rs:82:40
151 --> $DIR/edition-lint-infer-outlives-multispan.rs:82:40
152 |
153 LL | struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b> {
- | ^^^^ ^^^^^^^^^
+ | ^^^^ ^^^^^^^^^ ^
156 help: remove these bounds
157 |
343 --> $DIR/edition-lint-infer-outlives-multispan.rs:148:38
343 --> $DIR/edition-lint-infer-outlives-multispan.rs:148:38
344 |
345 LL | struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b>(&'a &'b T);
- | ^^^^ ^^^^
+ | ^^^^ ^^^^ ^
348 help: remove these bounds
349 |
355 --> $DIR/edition-lint-infer-outlives-multispan.rs:151:40
355 --> $DIR/edition-lint-infer-outlives-multispan.rs:151:40
356 |
357 LL | struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b>(&'a &'b T);
- | ^^^^ ^^^^^^^^^
+ | ^^^^ ^^^^^^^^^ ^
360 help: remove these bounds
361 |
547 --> $DIR/edition-lint-infer-outlives-multispan.rs:235:36
547 --> $DIR/edition-lint-infer-outlives-multispan.rs:235:36
548 |
549 LL | enum BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b> {
- | ^^^^ ^^^^
+ | ^^^^ ^^^^ ^
552 help: remove these bounds
553 |
559 --> $DIR/edition-lint-infer-outlives-multispan.rs:240:38
559 --> $DIR/edition-lint-infer-outlives-multispan.rs:240:38
560 |
561 LL | enum BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b> {
- | ^^^^ ^^^^^^^^^
+ | ^^^^ ^^^^^^^^^ ^
564 help: remove these bounds
565 |
751 --> $DIR/edition-lint-infer-outlives-multispan.rs:335:37
751 --> $DIR/edition-lint-infer-outlives-multispan.rs:335:37
752 |
753 LL | union BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b> {
- | ^^^^ ^^^^
+ | ^^^^ ^^^^ ^
756 help: remove these bounds
757 |
763 --> $DIR/edition-lint-infer-outlives-multispan.rs:340:39
763 --> $DIR/edition-lint-infer-outlives-multispan.rs:340:39
764 |
765 LL | union BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b> {
- | ^^^^ ^^^^^^^^^
+ | ^^^^ ^^^^^^^^^ ^
768 help: remove these bounds
769 |
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives-multispan/edition-lint-infer-outlives-multispan.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args rust-2018/edition-lint-infer-outlives-multispan.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives-multispan" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives-multispan/auxiliary"
stdout: none
--- stderr -------------------------------
error: outlives requirements can be inferred
|
|
LL | struct TeeOutlivesAyIsDebugBee<'a, 'b, T: 'a + Debug + 'b> {
|
note: the lint level is defined here
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:2:9
|
|
LL | #![deny(explicit_outlives_requirements)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: remove these bounds
|
LL - struct TeeOutlivesAyIsDebugBee<'a, 'b, T: 'a + Debug + 'b> {
LL + struct TeeOutlivesAyIsDebugBee<'a, 'b, T: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:18:61
|
|
LL | struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where T: 'a + Debug + 'b {
|
help: remove these bounds
|
|
LL - struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where T: 'a + Debug + 'b {
LL + struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where T: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:23:53
|
|
LL | struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: 'a + Debug + 'b> {
|
help: remove these bounds
|
|
LL - struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: 'a + Debug + 'b> {
LL + struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:29:48
|
|
LL | struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T: 'a, U: 'b + Debug> {
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T: 'a, U: 'b + Debug> {
LL + struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T, U: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:35:48
|
|
LL | struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T: 'a, U: Debug + 'b> {
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T: 'a, U: Debug + 'b> {
LL + struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T, U: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:41:46
|
|
LL | struct TeeOutlivesAyYooWhereBee<'a, 'b, T: 'a, U> where U: 'b {
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereBee<'a, 'b, T: 'a, U> where U: 'b {
LL + struct TeeOutlivesAyYooWhereBee<'a, 'b, T, U> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:47:67
|
|
LL | struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U> where U: 'a + Debug + 'b {
|
help: remove these bounds
|
|
LL - struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U> where U: 'a + Debug + 'b {
LL + struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:53:53
|
|
LL | struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T: 'a, U> where U: 'b + Debug {
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T: 'a, U> where U: 'b + Debug {
LL + struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:59:53
|
|
LL | struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T: 'a, U> where U: Debug + 'b {
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T: 'a, U> where U: Debug + 'b {
LL + struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:65:69
|
|
LL | struct TeeWhereOutlivesAyYooWhereBeeIsDebug<'a, 'b, T, U> where T: 'a, U: 'b + Debug {
| ^^^^^^^ ^^^^^
help: remove these bounds
|
|
LL - struct TeeWhereOutlivesAyYooWhereBeeIsDebug<'a, 'b, T, U> where T: 'a, U: 'b + Debug {
LL + struct TeeWhereOutlivesAyYooWhereBeeIsDebug<'a, 'b, T, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:71:69
|
|
LL | struct TeeWhereOutlivesAyYooWhereIsDebugBee<'a, 'b, T, U> where T: 'a, U: Debug + 'b {
|
help: remove these bounds
|
|
LL - struct TeeWhereOutlivesAyYooWhereIsDebugBee<'a, 'b, T, U> where T: 'a, U: Debug + 'b {
LL + struct TeeWhereOutlivesAyYooWhereIsDebugBee<'a, 'b, T, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:77:38
|
|
LL | struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b> {
| ^^^^ ^^^^ ^
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b> {
LL + struct BeeOutlivesAyTeeBee<'a, 'b, T> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:82:40
|
|
LL | struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b> {
| ^^^^ ^^^^^^^^^ ^
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b> {
LL + struct BeeOutlivesAyTeeAyBee<'a, 'b, T> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:87:55
|
|
LL | struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b: 'a, T: 'a + Debug + 'b> {
|
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b: 'a, T: 'a + Debug + 'b> {
LL + struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b, T: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:92:68
|
|
LL | struct BeeWhereAyTeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where 'b: 'a, T: 'a + Debug + 'b {
| ^^^^^^^^ ^^^^^ ^^^^^
help: remove these bounds
|
|
LL - struct BeeWhereAyTeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where 'b: 'a, T: 'a + Debug + 'b {
LL + struct BeeWhereAyTeeWhereOutlivesAyIsDebugBee<'a, 'b, T> where T: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:97:58
|
|
LL | struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b: 'a, T, U: 'a + Debug + 'b> {
|
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b: 'a, T, U: 'a + Debug + 'b> {
LL + struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:104:18
|
|
LL | where U: 'a + Debug + 'b, 'b: 'a
|
help: remove these bounds
|
|
LL - where U: 'a + Debug + 'b, 'b: 'a
LL + where U: Debug,
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:115:47
|
|
LL | struct TeeOutlivesAyIsDebugBee<'a, 'b, T: 'a + Debug + 'b>(&'a &'b T);
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyIsDebugBee<'a, 'b, T: 'a + Debug + 'b>(&'a &'b T);
LL + struct TeeOutlivesAyIsDebugBee<'a, 'b, T: Debug>(&'a &'b T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:118:72
|
|
LL | struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T>(&'a &'b T) where T: 'a + Debug + 'b;
|
help: remove these bounds
|
|
LL - struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T>(&'a &'b T) where T: 'a + Debug + 'b;
LL + struct TeeWhereOutlivesAyIsDebugBee<'a, 'b, T>(&'a &'b T) where T: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:121:53
|
|
LL | struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: 'a + Debug + 'b>(T, &'a &'b U);
|
help: remove these bounds
|
|
LL - struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: 'a + Debug + 'b>(T, &'a &'b U);
LL + struct TeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: Debug>(T, &'a &'b U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:124:48
|
|
LL | struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T: 'a, U: 'b + Debug>(&'a T, &'b U);
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T: 'a, U: 'b + Debug>(&'a T, &'b U);
LL + struct TeeOutlivesAyYooBeeIsDebug<'a, 'b, T, U: Debug>(&'a T, &'b U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:127:48
|
|
LL | struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T: 'a, U: Debug + 'b>(&'a T, &'b U);
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T: 'a, U: Debug + 'b>(&'a T, &'b U);
LL + struct TeeOutlivesAyYooIsDebugBee<'a, 'b, T, U: Debug>(&'a T, &'b U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:130:46
|
|
LL | struct TeeOutlivesAyYooWhereBee<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: 'b;
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereBee<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: 'b;
LL + struct TeeOutlivesAyYooWhereBee<'a, 'b, T, U>(&'a T, &'b U) ;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:133:81
|
|
LL | struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + Debug + 'b;
|
help: remove these bounds
|
|
LL - struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + Debug + 'b;
LL + struct TeeYooWhereOutlivesAyIsDebugBee<'a, 'b, T, U>(T, &'a &'b U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:136:53
|
|
LL | struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: 'b + Debug;
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: 'b + Debug;
LL + struct TeeOutlivesAyYooWhereBeeIsDebug<'a, 'b, T, U>(&'a T, &'b U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:139:53
|
|
LL | struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: Debug + 'b;
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T: 'a, U>(&'a T, &'b U) where U: Debug + 'b;
LL + struct TeeOutlivesAyYooWhereIsDebugBee<'a, 'b, T, U>(&'a T, &'b U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:142:75
|
|
LL | struct TeeWhereAyYooWhereBeeIsDebug<'a, 'b, T, U>(&'a T, &'b U) where T: 'a, U: 'b + Debug;
| ^^^^^^^ ^^^^^
help: remove these bounds
|
|
LL - struct TeeWhereAyYooWhereBeeIsDebug<'a, 'b, T, U>(&'a T, &'b U) where T: 'a, U: 'b + Debug;
LL + struct TeeWhereAyYooWhereBeeIsDebug<'a, 'b, T, U>(&'a T, &'b U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:145:75
|
|
LL | struct TeeWhereAyYooWhereIsDebugBee<'a, 'b, T, U>(&'a T, &'b U) where T: 'a, U: Debug + 'b;
|
help: remove these bounds
|
|
LL - struct TeeWhereAyYooWhereIsDebugBee<'a, 'b, T, U>(&'a T, &'b U) where T: 'a, U: Debug + 'b;
LL + struct TeeWhereAyYooWhereIsDebugBee<'a, 'b, T, U>(&'a T, &'b U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:148:38
|
|
LL | struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b>(&'a &'b T);
| ^^^^ ^^^^ ^
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeBee<'a, 'b: 'a, T: 'b>(&'a &'b T);
LL + struct BeeOutlivesAyTeeBee<'a, 'b, T>(&'a &'b T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:151:40
|
|
LL | struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b>(&'a &'b T);
| ^^^^ ^^^^^^^^^ ^
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeAyBee<'a, 'b: 'a, T: 'a + 'b>(&'a &'b T);
LL + struct BeeOutlivesAyTeeAyBee<'a, 'b, T>(&'a &'b T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:154:55
|
|
LL | struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b: 'a, T: 'a + Debug + 'b>(&'a &'b T);
|
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b: 'a, T: 'a + Debug + 'b>(&'a &'b T);
LL + struct BeeOutlivesAyTeeOutlivesAyIsDebugBee<'a, 'b, T: Debug>(&'a &'b T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:157:71
|
|
LL | struct BeeWhereAyTeeWhereAyIsDebugBee<'a, 'b, T>(&'a &'b T) where 'b: 'a, T: 'a + Debug + 'b;
| ^^^^^^^^ ^^^^^ ^^^^^
help: remove these bounds
|
|
LL - struct BeeWhereAyTeeWhereAyIsDebugBee<'a, 'b, T>(&'a &'b T) where 'b: 'a, T: 'a + Debug + 'b;
LL + struct BeeWhereAyTeeWhereAyIsDebugBee<'a, 'b, T>(&'a &'b T) where T: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:160:58
|
|
LL | struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b: 'a, T, U: 'a + Debug + 'b>(T, &'a &'b U);
|
help: remove these bounds
|
|
LL - struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b: 'a, T, U: 'a + Debug + 'b>(T, &'a &'b U);
LL + struct BeeOutlivesAyTeeYooOutlivesAyIsDebugBee<'a, 'b, T, U: Debug>(T, &'a &'b U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:164:18
|
|
LL | where U: 'a + Debug + 'b, 'b: 'a;
|
help: remove these bounds
|
|
LL - where U: 'a + Debug + 'b, 'b: 'a;
LL + where U: Debug, ;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-multispan.rs:171:45
|
---
To only update this specific test, also pass `--test-args rust-2018/edition-lint-infer-outlives.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives/auxiliary"
stdout: none
--- stderr -------------------------------
error: outlives requirements can be inferred
|
|
LL | struct TeeOutlivesAy<'a, T: 'a> {
| ^^^^ ^
note: the lint level is defined here
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:4:9
|
LL | #![deny(explicit_outlives_requirements)]
LL | #![deny(explicit_outlives_requirements)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: remove this bound
|
LL - struct TeeOutlivesAy<'a, T: 'a> {
LL + struct TeeOutlivesAy<'a, T> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:31:40
|
|
LL | struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:36:45
|
|
LL | struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:41:38
|
|
LL | struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {
| ^^^^^^^^^ ^
help: remove these bounds
|
|
LL - struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {
LL + struct TeeOutlivesAyBee<'a, 'b, T> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:46:47
|
|
LL | struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:51:52
|
|
LL | struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:56:37
|
|
LL | struct TeeWhereOutlivesAy<'a, T> where T: 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:61:54
|
|
LL | struct TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:66:59
|
|
LL | struct TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:71:44
|
|
LL | struct TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {
| ^^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:76:61
|
|
LL | struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:81:66
|
|
LL | struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:86:37
|
|
LL | struct TeeYooOutlivesAy<'a, T, U: 'a> {
| ^^^^ ^
help: remove this bound
|
|
LL - struct TeeYooOutlivesAy<'a, T, U: 'a> {
LL + struct TeeYooOutlivesAy<'a, T, U> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:92:46
|
|
LL | struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:98:51
|
|
LL | struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:104:41
|
|
LL | struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:110:44
|
|
LL | struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {
| ^^^^^^^^^ ^
help: remove these bounds
|
|
LL - struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {
LL + struct TeeYooOutlivesAyBee<'a, 'b, T, U> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:116:53
|
|
LL | struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:122:58
|
|
LL | struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:128:48
|
|
LL | struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {
| ^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:134:43
|
|
LL | struct TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:140:60
|
|
LL | struct TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:146:65
|
|
LL | struct TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:152:46
|
|
LL | struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:158:50
|
|
LL | struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {
| ^^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:164:67
|
|
LL | struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:170:72
|
|
LL | struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:176:53
|
|
LL | struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {
| ^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:182:62
|
|
LL | struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:188:69
|
|
LL | struct TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {
| ^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:194:32
|
|
LL | struct BeeOutlivesAy<'a, 'b: 'a> {
| ^^^^ ^
help: remove this bound
|
|
LL - struct BeeOutlivesAy<'a, 'b: 'a> {
LL + struct BeeOutlivesAy<'a, 'b> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:199:38
|
|
LL | struct BeeWhereOutlivesAy<'a, 'b> where 'b: 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:204:35
|
|
LL | struct BeeOutlivesAyTee<'a, 'b: 'a, T> {
|
help: remove this bound
|
|
LL - struct BeeOutlivesAyTee<'a, 'b: 'a, T> {
LL + struct BeeOutlivesAyTee<'a, 'b, T> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:209:44
|
|
LL | struct BeeWhereOutlivesAyTee<'a, 'b, T> where 'b: 'a {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:214:52
|
|
LL | struct BeeWhereOutlivesAyTeeWhereBee<'a, 'b, T> where 'b: 'a, T: 'b {
| ^^^^^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:219:54
|
|
LL | struct BeeWhereOutlivesAyTeeWhereAyBee<'a, 'b, T> where 'b: 'a, T: 'a + 'b {
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:224:40
|
|
LL | struct BeeOutlivesAyTeeDebug<'a, 'b: 'a, T: Debug> {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:229:61
|
|
LL | struct BeeWhereOutlivesAyTeeWhereDebug<'a, 'b, T> where 'b: 'a, T: Debug {
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:238:31
|
|
LL | struct TeeOutlivesAy<'a, T: 'a>(&'a T);
|
help: remove this bound
|
|
LL - struct TeeOutlivesAy<'a, T: 'a>(&'a T);
LL + struct TeeOutlivesAy<'a, T>(&'a T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:241:40
|
|
LL | struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug>(&'a T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:244:45
|
|
LL | struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a>(&'a T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:247:38
|
|
LL | struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b>(&'a &'b T);
|
help: remove these bounds
|
|
LL - struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b>(&'a &'b T);
LL + struct TeeOutlivesAyBee<'a, 'b, T>(&'a &'b T);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:250:47
|
|
LL | struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug>(&'a &'b T);
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:253:52
|
|
LL | struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b>(&'a &'b T);
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:256:45
|
|
LL | struct TeeWhereOutlivesAy<'a, T>(&'a T) where T: 'a;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:259:61
|
|
LL | struct TeeWhereOutlivesAyIsDebug<'a, T>(&'a T) where T: 'a + Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:262:66
|
|
LL | struct TeeWhereIsDebugOutlivesAy<'a, T>(&'a T) where T: Debug + 'a;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:265:56
|
|
LL | struct TeeWhereOutlivesAyBee<'a, 'b, T>(&'a &'b T) where T: 'a + 'b;
| ^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:268:72
|
|
LL | struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T>(&'a &'b T) where T: 'a + 'b + Debug;
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:271:77
|
|
LL | struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T>(&'a &'b T) where T: Debug + 'a + 'b;
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:274:37
|
|
LL | struct TeeYooOutlivesAy<'a, T, U: 'a>(T, &'a U);
|
help: remove this bound
|
|
LL - struct TeeYooOutlivesAy<'a, T, U: 'a>(T, &'a U);
LL + struct TeeYooOutlivesAy<'a, T, U>(T, &'a U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:277:46
|
|
LL | struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug>(T, &'a U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:280:51
|
|
LL | struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a>(T, &'a U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:283:41
|
|
LL | struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug>(&'a T, U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:286:44
|
|
LL | struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b>(T, &'a &'b U);
|
help: remove these bounds
|
|
LL - struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b>(T, &'a &'b U);
LL + struct TeeYooOutlivesAyBee<'a, 'b, T, U>(T, &'a &'b U);
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:289:53
|
|
LL | struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug>(T, &'a &'b U);
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:292:58
|
|
LL | struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b>(T, &'a &'b U);
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:295:48
|
|
LL | struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug>(&'a &'b T, U);
| ^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:298:54
|
|
LL | struct TeeYooWhereOutlivesAy<'a, T, U>(T, &'a U) where U: 'a;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:301:70
|
|
LL | struct TeeYooWhereOutlivesAyIsDebug<'a, T, U>(T, &'a U) where U: 'a + Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:304:75
|
|
LL | struct TeeYooWhereIsDebugOutlivesAy<'a, T, U>(T, &'a U) where U: Debug + 'a;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:307:46
|
|
LL | struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U>(&'a T, U) where U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:310:65
|
|
LL | struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + 'b;
| ^^^^^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:313:81
|
|
LL | struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + 'b + Debug;
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:316:86
|
|
LL | struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U>(T, &'a &'b U) where U: Debug + 'a + 'b;
| ^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:319:53
|
|
LL | struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U>(&'a &'b T, U) where U: Debug;
| ^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:322:72
|
|
LL | struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U>(&'a T, U) where T: 'a, U: Debug;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:325:75
|
|
LL | struct TeeWhereAyBeeYooWhereIsDebug<'a, 'b, T, U>(&'a &'b T, U) where T: 'a + 'b, U: Debug;
| ^^^^^^^^^^^^ help: remove these bounds
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:328:32
|
|
LL | struct BeeOutlivesAy<'a, 'b: 'a>(&'a &'b ());
|
help: remove this bound
|
|
LL - struct BeeOutlivesAy<'a, 'b: 'a>(&'a &'b ());
LL + struct BeeOutlivesAy<'a, 'b>(&'a &'b ());
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:331:51
|
|
LL | struct BeeWhereOutlivesAy<'a, 'b>(&'a &'b ()) where 'b: 'a;
error: outlives requirements can be inferred
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives.rs:334:35
|
---
To only update this specific test, also pass `--test-args rust-2018/edition-lint-infer-outlives-macro.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-macro.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives-macro" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2018/edition-lint-infer-outlives-macro/auxiliary"
stdout: none
--- stderr -------------------------------
error: outlives requirements can be inferred
|
|
LL | struct Bar<'a, 'b: 'a> {
| ^^^^ ^
note: the lint level is defined here
--> /checkout/src/test/ui/rust-2018/edition-lint-infer-outlives-macro.rs:8:9
|
LL | #![deny(explicit_outlives_requirements)]
LL | #![deny(explicit_outlives_requirements)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: remove this bound
|
LL - struct Bar<'a, 'b: 'a> {
LL + struct Bar<'a, 'b> {
error: aborting due to previous error
------------------------------------------
---- [ui] src/test/ui/specialization/default-associated-type-bound-2.rs stdout ----
diff of stderr:
22 | ^^^^^^^^^^^^ required by this bound in `X::U`
23 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
24 |
- LL | impl<B: 'static, T> X<B> for T where &'static B: PartialEq<B> {
- | ++++++++++++++++++++++++++++++
+ LL | impl<B: 'static, T> X<B> for T, &'static B: PartialEq<B> {
27
28 error: aborting due to previous error; 1 warning emitted
29
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/default-associated-type-bound-2/default-associated-type-bound-2.stderr
To only update this specific test, also pass `--test-args specialization/default-associated-type-bound-2.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/default-associated-type-bound-2.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/default-associated-type-bound-2" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/default-associated-type-bound-2/auxiliary"
stdout: none
--- stderr -------------------------------
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
|
LL | #![feature(specialization)]
| ^^^^^^^^^^^^^^
|
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
= help: consider using `min_specialization` instead, which is more stable and complete
error[E0277]: can't compare `&'static B` with `B`
|
LL | default type U = &'static B;
LL | default type U = &'static B;
| ^^^^^^^^^^ no implementation for `&'static B == B`
|
= help: the trait `PartialEq<B>` is not implemented for `&'static B`
note: required by a bound in `X::U`
|
|
LL | type U: PartialEq<T>;
| ^^^^^^^^^^^^ required by this bound in `X::U`
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | impl<B: 'static, T> X<B> for T, &'static B: PartialEq<B> {
error: aborting due to previous error; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---- [ui] src/test/ui/suggestions/derive-clone-for-eq.rs stdout ----
diff of stderr:
15 LL | pub trait Eq: PartialEq<Self> {
16 | ^^^^^^^^^^^^^^^ required by this bound in `Eq`
17 = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
- help: consider restricting type parameter `T`
+ help: consider further restricting type parameter `T`
19 |
- LL | pub struct Struct<T: std::clone::Clone>(T);
- | +++++++++++++++++++
+ LL | pub struct Struct<T>(T), T: std::clone::Clone;
22
23 error: aborting due to previous error
24
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-clone-for-eq/derive-clone-for-eq.stderr
4 use std::cmp::PartialEq;
5
5
6 #[derive(Clone, Eq)] //~ ERROR [E0277]
- pub struct Struct<T: std::clone::Clone>(T);
+ pub struct Struct<T>(T), T: std::clone::Clone;
8
9 impl<T: Clone, U> PartialEq<U> for Struct<T>
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-clone-for-eq/derive-clone-for-eq.fixed
To only update this specific test, also pass `--test-args suggestions/derive-clone-for-eq.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/derive-clone-for-eq.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-clone-for-eq" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-clone-for-eq/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `T: Clone` is not satisfied
--> /checkout/src/test/ui/suggestions/derive-clone-for-eq.rs:6:17
|
LL | #[derive(Clone, Eq)] //~ ERROR [E0277]
| ^^ the trait `Clone` is not implemented for `T`
|
note: required because of the requirements on the impl of `PartialEq` for `Struct<T>`
--> /checkout/src/test/ui/suggestions/derive-clone-for-eq.rs:9:19
|
LL | impl<T: Clone, U> PartialEq<U> for Struct<T>
note: required by a bound in `Eq`
--> /checkout/library/core/src/cmp.rs:288:15
|
|
LL | pub trait Eq: PartialEq<Self> {
| ^^^^^^^^^^^^^^^ required by this bound in `Eq`
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider further restricting type parameter `T`
|
LL | pub struct Struct<T>(T), T: std::clone::Clone;
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---- [ui] src/test/ui/suggestions/derive-macro-missing-bounds.rs stdout ----
diff of stderr:
15 |
16 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
17 |
- LL | struct Outer<T>(Inner<T>) where a::Inner<T>: Debug;
- | ++++++++++++++++++++++++
+ LL | struct Outer<T>(Inner<T>), a::Inner<T>: Debug;
20
20
21 error[E0277]: the trait bound `T: c::Trait` is not satisfied
35 = note: required because of the requirements on the impl of `Debug` for `&c::Inner<T>`
36 = note: required for the cast from `&c::Inner<T>` to the object type `dyn Debug`
- help: consider restricting type parameter `T`
+ help: consider further restricting type parameter `T`
39 |
39 |
- LL | struct Outer<T: c::Trait>(Inner<T>);
- | ++++++++++
+ LL | struct Outer<T>(Inner<T>), T: c::Trait;
42
42
43 error[E0277]: the trait bound `T: d::Trait` is not satisfied
57 = note: required because of the requirements on the impl of `Debug` for `&d::Inner<T>`
58 = note: required for the cast from `&d::Inner<T>` to the object type `dyn Debug`
- help: consider restricting type parameter `T`
+ help: consider further restricting type parameter `T`
61 |
61 |
- LL | struct Outer<T: d::Trait>(Inner<T>);
- | ++++++++++
+ LL | struct Outer<T>(Inner<T>), T: d::Trait;
64
64
65 error[E0277]: the trait bound `T: e::Trait` is not satisfied
79 = note: required because of the requirements on the impl of `Debug` for `&e::Inner<T>`
80 = note: required for the cast from `&e::Inner<T>` to the object type `dyn Debug`
- help: consider restricting type parameter `T`
+ help: consider further restricting type parameter `T`
83 |
83 |
- LL | struct Outer<T: e::Trait>(Inner<T>);
- | ++++++++++
+ LL | struct Outer<T>(Inner<T>), T: e::Trait;
86
86
87 error[E0277]: the trait bound `T: f::Trait` is not satisfied
101 = note: required because of the requirements on the impl of `Debug` for `&f::Inner<T>`
102 = note: required for the cast from `&f::Inner<T>` to the object type `dyn Debug`
- help: consider restricting type parameter `T`
+ help: consider further restricting type parameter `T`
105 |
105 |
- LL | struct Outer<T: f::Trait>(Inner<T>);
- | ++++++++++
+ LL | struct Outer<T>(Inner<T>), T: f::Trait;
108
109 error: aborting due to 5 previous errors
110
---
To only update this specific test, also pass `--test-args suggestions/derive-macro-missing-bounds.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/derive-macro-missing-bounds.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-macro-missing-bounds" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/derive-macro-missing-bounds/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `a::Inner<T>` doesn't implement `Debug`
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
| ----- in this derive macro expansion
LL | struct Outer<T>(Inner<T>); //~ ERROR `a::Inner<T>` doesn't implement `Debug`
| ^^^^^^^^ `a::Inner<T>` cannot be formatted using `{:?}`
= help: the trait `Debug` is not implemented for `a::Inner<T>`
= help: the trait `Debug` is not implemented for `a::Inner<T>`
= note: add `#[derive(Debug)]` to `a::Inner<T>` or manually `impl Debug for a::Inner<T>`
= note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider annotating `a::Inner<T>` with `#[derive(Debug)]`
LL | #[derive(Debug)]
|
|
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | struct Outer<T>(Inner<T>), a::Inner<T>: Debug; //~ ERROR `a::Inner<T>` doesn't implement `Debug`
error[E0277]: the trait bound `T: c::Trait` is not satisfied
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
| ----- in this derive macro expansion
LL | struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: c::Trait` is not satisfied
| ^^^^^^^^ the trait `c::Trait` is not implemented for `T`
|
note: required because of the requirements on the impl of `Debug` for `c::Inner<T>`
|
|
LL | impl<T: Debug + Trait> Debug for Inner<T> {
= note: 1 redundant requirement hidden
= note: 1 redundant requirement hidden
= note: required because of the requirements on the impl of `Debug` for `&c::Inner<T>`
= note: required for the cast from `&c::Inner<T>` to the object type `dyn Debug`
help: consider further restricting type parameter `T`
|
|
LL | struct Outer<T>(Inner<T>), T: c::Trait; //~ ERROR the trait bound `T: c::Trait` is not satisfied
error[E0277]: the trait bound `T: d::Trait` is not satisfied
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
| ----- in this derive macro expansion
LL | struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: d::Trait` is not satisfied
| ^^^^^^^^ the trait `d::Trait` is not implemented for `T`
|
note: required because of the requirements on the impl of `Debug` for `d::Inner<T>`
|
|
LL | impl<T> Debug for Inner<T> where T: Debug, T: Trait {
= note: 1 redundant requirement hidden
= note: 1 redundant requirement hidden
= note: required because of the requirements on the impl of `Debug` for `&d::Inner<T>`
= note: required for the cast from `&d::Inner<T>` to the object type `dyn Debug`
help: consider further restricting type parameter `T`
|
|
LL | struct Outer<T>(Inner<T>), T: d::Trait; //~ ERROR the trait bound `T: d::Trait` is not satisfied
error[E0277]: the trait bound `T: e::Trait` is not satisfied
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
| ----- in this derive macro expansion
LL | struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: e::Trait` is not satisfied
| ^^^^^^^^ the trait `e::Trait` is not implemented for `T`
|
note: required because of the requirements on the impl of `Debug` for `e::Inner<T>`
|
|
LL | impl<T> Debug for Inner<T> where T: Debug + Trait {
= note: 1 redundant requirement hidden
= note: 1 redundant requirement hidden
= note: required because of the requirements on the impl of `Debug` for `&e::Inner<T>`
= note: required for the cast from `&e::Inner<T>` to the object type `dyn Debug`
help: consider further restricting type parameter `T`
|
|
LL | struct Outer<T>(Inner<T>), T: e::Trait; //~ ERROR the trait bound `T: e::Trait` is not satisfied
error[E0277]: the trait bound `T: f::Trait` is not satisfied
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
| ----- in this derive macro expansion
LL | struct Outer<T>(Inner<T>); //~ ERROR the trait bound `T: f::Trait` is not satisfied
| ^^^^^^^^ the trait `f::Trait` is not implemented for `T`
|
note: required because of the requirements on the impl of `Debug` for `f::Inner<T>`
|
|
LL | impl<T: Debug> Debug for Inner<T> where T: Trait {
= note: 1 redundant requirement hidden
= note: 1 redundant requirement hidden
= note: required because of the requirements on the impl of `Debug` for `&f::Inner<T>`
= note: required for the cast from `&f::Inner<T>` to the object type `dyn Debug`
help: consider further restricting type parameter `T`
|
|
LL | struct Outer<T>(Inner<T>), T: f::Trait; //~ ERROR the trait bound `T: f::Trait` is not satisfied
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0277`.
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---- [ui] src/test/ui/suggestions/impl-trait-with-missing-bounds.rs stdout ----
diff of stderr:
14 | ^^^^^^^^^^^^^^^ required by this bound in `qux`
15 help: introduce a type parameter with a trait bound instead of using `impl Trait`
16 |
- LL | fn foo<I: Iterator>(constraints: I) where <I as Iterator>::Item: Debug {
- | +++++++++++++ ~ ++++++++++++++++++++++++++++++++++
+ LL | fn foo<I: Iterator>(constraints: I), <I as Iterator>::Item: Debug {
+ | +++++++++++++ ~ ++++++++++++++++++++++++++++++
20 error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
21 --> $DIR/impl-trait-with-missing-bounds.rs:14:13
52 | ^^^^^^^^^^^^^^^ required by this bound in `qux`
53 help: introduce a type parameter with a trait bound instead of using `impl Trait`
54 |
- LL | fn baz<I: Iterator>(t: impl std::fmt::Debug, constraints: I) where <I as Iterator>::Item: Debug {
- | +++++++++++++ ~ ++++++++++++++++++++++++++++++++++
+ LL | fn baz<I: Iterator>(t: impl std::fmt::Debug, constraints: I), <I as Iterator>::Item: Debug {
+ | +++++++++++++ ~ ++++++++++++++++++++++++++++++
58 error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
59 --> $DIR/impl-trait-with-missing-bounds.rs:30:13
71 | ^^^^^^^^^^^^^^^ required by this bound in `qux`
72 help: introduce a type parameter with a trait bound instead of using `impl Trait`
73 |
- LL | fn bat<I, T: std::fmt::Debug, U: Iterator>(t: T, constraints: U, _: I) where <U as Iterator>::Item: Debug {
- | +++++++++++++ ~ ++++++++++++++++++++++++++++++++++
+ LL | fn bat<I, T: std::fmt::Debug, U: Iterator>(t: T, constraints: U, _: I), <U as Iterator>::Item: Debug {
76
76
77 error[E0277]: `<impl Iterator + std::fmt::Debug as Iterator>::Item` doesn't implement `Debug`
90 | ^^^^^^^^^^^^^^^ required by this bound in `qux`
91 help: introduce a type parameter with a trait bound instead of using `impl Trait`
92 |
- LL | fn bak<I: Iterator + std::fmt::Debug>(constraints: I) where <I as Iterator>::Item: Debug {
- | +++++++++++++++++++++++++++++++ ~ ++++++++++++++++++++++++++++++++++
+ LL | fn bak<I: Iterator + std::fmt::Debug>(constraints: I), <I as Iterator>::Item: Debug {
+ | +++++++++++++++++++++++++++++++ ~ ++++++++++++++++++++++++++++++
96 error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
97 --> $DIR/impl-trait-with-missing-bounds.rs:45:13
109 | ^^^^^^^^^^^^^^^ required by this bound in `qux`
110 help: introduce a type parameter with a trait bound instead of using `impl Trait`
111 |
- LL | fn baw<I: Iterator>(constraints: I) where <I as Iterator>::Item: Debug {
- | ~~~~~~~~~~~~~ ~ ++++++++++++++++++++++++++++++++++
+ LL | fn baw<I: Iterator>(constraints: I), <I as Iterator>::Item: Debug {
+ | ~~~~~~~~~~~~~ ~ ++++++++++++++++++++++++++++++
115 error: aborting due to 6 previous errors
116
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/impl-trait-with-missing-bounds/impl-trait-with-missing-bounds.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args suggestions/impl-trait-with-missing-bounds.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/impl-trait-with-missing-bounds" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/impl-trait-with-missing-bounds/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
= help: the trait `Debug` is not implemented for `<impl Iterator as Iterator>::Item`
note: required by a bound in `qux`
note: required by a bound in `qux`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:50:16
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn foo<I: Iterator>(constraints: I), <I as Iterator>::Item: Debug {
| +++++++++++++ ~ ++++++++++++++++++++++++++++++
error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:14:13
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
= help: the trait `Debug` is not implemented for `<impl Iterator as Iterator>::Item`
note: required by a bound in `qux`
note: required by a bound in `qux`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:50:16
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn bar<T, I: Iterator>(t: T, constraints: I) where T: std::fmt::Debug, <I as Iterator>::Item: Debug {
error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:22:13
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
= help: the trait `Debug` is not implemented for `<impl Iterator as Iterator>::Item`
note: required by a bound in `qux`
note: required by a bound in `qux`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:50:16
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn baz<I: Iterator>(t: impl std::fmt::Debug, constraints: I), <I as Iterator>::Item: Debug {
| +++++++++++++ ~ ++++++++++++++++++++++++++++++
error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:30:13
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
= help: the trait `Debug` is not implemented for `<impl Iterator as Iterator>::Item`
note: required by a bound in `qux`
note: required by a bound in `qux`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:50:16
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn bat<I, T: std::fmt::Debug, U: Iterator>(t: T, constraints: U, _: I), <U as Iterator>::Item: Debug {
error[E0277]: `<impl Iterator + std::fmt::Debug as Iterator>::Item` doesn't implement `Debug`
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator + std::fmt::Debug as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
|
= help: the trait `Debug` is not implemented for `<impl Iterator + std::fmt::Debug as Iterator>::Item`
note: required by a bound in `qux`
|
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn bak<I: Iterator + std::fmt::Debug>(constraints: I), <I as Iterator>::Item: Debug {
| +++++++++++++++++++++++++++++++ ~ ++++++++++++++++++++++++++++++
error[E0277]: `<impl Iterator as Iterator>::Item` doesn't implement `Debug`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:45:13
|
|
LL | qux(constraint);
| --- ^^^^^^^^^^ `<impl Iterator as Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `Debug`
| required by a bound introduced by this call
|
= help: the trait `Debug` is not implemented for `<impl Iterator as Iterator>::Item`
note: required by a bound in `qux`
note: required by a bound in `qux`
--> /checkout/src/test/ui/suggestions/impl-trait-with-missing-bounds.rs:50:16
|
LL | fn qux(_: impl std::fmt::Debug) {}
| ^^^^^^^^^^^^^^^ required by this bound in `qux`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | fn baw<I: Iterator>(constraints: I), <I as Iterator>::Item: Debug {
| ~~~~~~~~~~~~~ ~ ++++++++++++++++++++++++++++++
error: aborting due to 6 previous errors
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---
14 | ^^^^ required by this bound in `assert_is_send`
15 help: introduce a type parameter with a trait bound instead of using `impl Trait`
16 |
- LL | async fn run<F: Foo>(_: &(), foo: F) -> std::io::Result<()> where <F as Foo>::Bar: Send {
- | ++++++++ ~ +++++++++++++++++++++++++++
+ LL | async fn run<F: Foo>(_: &(), foo: F) -> std::io::Result<()>, <F as Foo>::Bar: Send {
19
19
20 error[E0277]: `<impl Foo as Foo>::Bar` cannot be sent between threads safely
33 | ^^^^ required by this bound in `assert_is_send`
34 help: introduce a type parameter with a trait bound instead of using `impl Trait`
35 |
35 |
- LL | async fn run2<F: Foo>(_: &(), foo: F) -> std::io::Result<()> where <F as Foo>::Bar: Send {
- | ~~~~~~~~ ~ +++++++++++++++++++++++++++
+ LL | async fn run2<F: Foo>(_: &(), foo: F) -> std::io::Result<()>, <F as Foo>::Bar: Send {
38
39 error: aborting due to 2 previous errors
40
---
To only update this specific test, also pass `--test-args suggestions/issue-79843-impl-trait-with-missing-bounds-on-async-fn.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/issue-79843-impl-trait-with-missing-bounds-on-async-fn.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-79843-impl-trait-with-missing-bounds-on-async-fn" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-79843-impl-trait-with-missing-bounds-on-async-fn/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `<impl Foo as Foo>::Bar` cannot be sent between threads safely
|
|
LL | assert_is_send(&bar);
| -------------- ^^^^ `<impl Foo as Foo>::Bar` cannot be sent between threads safely
| required by a bound introduced by this call
|
|
= help: the trait `Send` is not implemented for `<impl Foo as Foo>::Bar`
note: required by a bound in `assert_is_send`
|
|
LL | fn assert_is_send<T: Send>(_: &T) {}
| ^^^^ required by this bound in `assert_is_send`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | async fn run<F: Foo>(_: &(), foo: F) -> std::io::Result<()>, <F as Foo>::Bar: Send {
error[E0277]: `<impl Foo as Foo>::Bar` cannot be sent between threads safely
|
|
LL | assert_is_send(&bar);
| -------------- ^^^^ `<impl Foo as Foo>::Bar` cannot be sent between threads safely
| required by a bound introduced by this call
|
|
= help: the trait `Send` is not implemented for `<impl Foo as Foo>::Bar`
note: required by a bound in `assert_is_send`
|
|
LL | fn assert_is_send<T: Send>(_: &T) {}
| ^^^^ required by this bound in `assert_is_send`
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
LL | async fn run2<F: Foo>(_: &(), foo: F) -> std::io::Result<()>, <F as Foo>::Bar: Send {
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.
---
diff of stderr:
10 help: introduce a type parameter with a trait bound instead of using `impl Trait`
11 |
12 LL ~ pub fn print_values<I: IntoIterator>(values: &I)
- LL ~ where <I as IntoIterator>::Item: std::fmt::Display {
+ LL ~ where, <I as IntoIterator>::Item: std::fmt::Display {
15
16 error: aborting due to previous error
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760/issue-97760.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args suggestions/issue-97760.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/issue-97760.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `<impl IntoIterator as IntoIterator>::Item` doesn't implement `std::fmt::Display`
|
|
LL | println!("{x}");
| ^ `<impl IntoIterator as IntoIterator>::Item` cannot be formatted with the default formatter
|
= help: the trait `std::fmt::Display` is not implemented for `<impl IntoIterator as IntoIterator>::Item`
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
|
LL ~ pub fn print_values<I: IntoIterator>(values: &I)
LL ~ where, <I as IntoIterator>::Item: std::fmt::Display {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
19 = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info)
- help: consider restricting type parameter `K`
+ help: consider further restricting type parameter `K`
21 |
- LL | pub struct AABB<K: Debug>{
- | +++++++
+ LL | pub struct AABB<K>, K: Debug, K: Debug{
24
25 error: aborting due to previous error
26
---
To only update this specific test, also pass `--test-args suggestions/missing-bound-in-derive-copy-impl.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/missing-bound-in-derive-copy-impl.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/missing-bound-in-derive-copy-impl" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/missing-bound-in-derive-copy-impl/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0204]: the trait `Copy` may not be implemented for this type
|
|
LL | #[derive(Debug, Copy, Clone)] //~ ERROR the trait `Copy` may not be implemented for this type
| ^^^^
LL | pub struct AABB<K>{
LL | pub loc: Vector2<K>,
| ------------------- this field does not implement `Copy`
LL | pub size: Vector2<K>
| -------------------- this field does not implement `Copy`
|
note: the `Copy` impl for `Vector2<K>` requires that `K: Debug`
|
|
LL | pub loc: Vector2<K>,
LL | pub size: Vector2<K>
| ^^^^^^^^^^
= note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider further restricting type parameter `K`
help: consider further restricting type parameter `K`
|
LL | pub struct AABB<K>, K: Debug, K: Debug{
error: aborting due to previous error
For more information about this error, try `rustc --explain E0204`.
For more information about this error, try `rustc --explain E0204`.
------------------------------------------
---- [ui] src/test/ui/suggestions/suggest-change-mut.rs stdout ----
diff of stderr:
18 |
19 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
20 |
- LL | fn issue_81421<T: Read + Write>(mut stream: T) where &T: std::io::Read {
- | +++++++++++++++++++++++
+ LL | fn issue_81421<T: Read + Write>(mut stream: T), &T: std::io::Read {
+ | +++++++++++++++++++
23 help: consider changing this borrow's mutability
24 |
25 LL | let mut stream_reader = BufReader::new(&mut stream);
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/suggest-change-mut/suggest-change-mut.stderr
To update references, rerun the tests and pass the `--bless` flag
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args suggestions/suggest-change-mut.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/suggest-change-mut.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/suggest-change-mut" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/suggest-change-mut/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `&T: std::io::Read` is not satisfied
|
|
LL | let mut stream_reader = BufReader::new(&stream);
| -------------- ^^^^^^^ the trait `std::io::Read` is not implemented for `&T`
| required by a bound introduced by this call
|
|
note: required by a bound in `BufReader::<R>::new`
|
|
LL | impl<R: Read> BufReader<R> {
| ^^^^ required by this bound in `BufReader::<R>::new`
help: consider removing the leading `&`-reference
|
LL - let mut stream_reader = BufReader::new(&stream);
LL + let mut stream_reader = BufReader::new(stream);
|
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn issue_81421<T: Read + Write>(mut stream: T), &T: std::io::Read { //~ HELP consider introducing a `where` clause
| +++++++++++++++++++
help: consider changing this borrow's mutability
|
LL | let mut stream_reader = BufReader::new(&mut stream);
error[E0599]: the method `read_until` exists for struct `BufReader<&T>`, but its trait bounds were not satisfied
|
|
LL | stream_reader.read_until(b'\n', &mut buffer).expect("Reading into buffer failed");
| ^^^^^^^^^^ method cannot be called on `BufReader<&T>` due to unsatisfied trait bounds
::: /checkout/library/std/src/io/buffered/bufreader.rs:50:1
|
|
LL | pub struct BufReader<R> {
| ----------------------- doesn't satisfy `BufReader<&T>: BufRead`
= note: the following trait bounds were not satisfied:
= note: the following trait bounds were not satisfied:
`&T: std::io::Read`
which is required by `BufReader<&T>: BufRead`
error: aborting due to 2 previous errors
Some errors have detailed explanations: E0277, E0599.
For more information about an error, try `rustc --explain E0277`.
---
23 | ++++++++
24 help: consider restricting the type parameter to satisfy the trait bound
25 |
- LL | struct Victim<'a, T: Perpetrator + ?Sized> where Self: Sized {
- | +++++++++++++++++
+ LL | struct Victim<'a, T: Perpetrator + ?Sized>, Self: Sized {
28
29 error: aborting due to previous error
30
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/trait-bounds/impl-derived-implicit-sized-bound-2/impl-derived-implicit-sized-bound-2.stderr
To only update this specific test, also pass `--test-args trait-bounds/impl-derived-implicit-sized-bound-2.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/trait-bounds/impl-derived-implicit-sized-bound-2.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/trait-bounds/impl-derived-implicit-sized-bound-2" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/trait-bounds/impl-derived-implicit-sized-bound-2/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0599]: the method `get` exists for struct `Victim<'_, Self>`, but its trait bounds were not satisfied
|
|
LL | struct Victim<'a, T: Perpetrator + ?Sized> {
| |
| method `get` not found for this struct
| method `get` not found for this struct
| doesn't satisfy `Victim<'_, Self>: VictimTrait`
LL | self.getter().get();
LL | self.getter().get();
| ^^^ method cannot be called on `Victim<'_, Self>` due to unsatisfied trait bounds
|
note: trait bound `Self: Sized` was not satisfied
|
|
LL | impl<'a, T: Perpetrator /*+ ?Sized*/> VictimTrait for Victim<'a, T> {
| ^ ----------- -------------
| unsatisfied trait bound introduced here
| unsatisfied trait bound introduced here
help: consider relaxing the type parameter's implicit `Sized` bound
|
LL | impl<'a, T: ?Sized + Perpetrator /*+ ?Sized*/> VictimTrait for Victim<'a, T> {
help: consider restricting the type parameter to satisfy the trait bound
|
|
LL | struct Victim<'a, T: Perpetrator + ?Sized>, Self: Sized {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0599`.
For more information about this error, try `rustc --explain E0599`.
------------------------------------------
---- [ui] src/test/ui/traits/resolution-in-overloaded-op.rs stdout ----
diff of stderr:
8 |
9 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
10 |
- LL | fn foo<T: MyMul<f64, f64>>(a: &T, b: f64) -> f64 where &T: Mul<f64> {
- | ++++++++++++++++++
+ LL | fn foo<T: MyMul<f64, f64>>(a: &T, b: f64) -> f64, &T: Mul<f64> {
13
14 error: aborting due to previous error
15
---
To only update this specific test, also pass `--test-args traits/resolution-in-overloaded-op.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/traits/resolution-in-overloaded-op.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/resolution-in-overloaded-op" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/resolution-in-overloaded-op/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0369]: cannot multiply `&T` by `f64`
|
|
LL | a * b //~ ERROR cannot multiply `&T` by `f64`
| - ^ - f64
| &T
|
|
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn foo<T: MyMul<f64, f64>>(a: &T, b: f64) -> f64, &T: Mul<f64> {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0369`.
For more information about this error, try `rustc --explain E0369`.
------------------------------------------
---- [ui] src/test/ui/traits/suggest-where-clause.rs stdout ----
diff of stderr:
51 |
52 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
53 |
- LL | fn check<T: Iterator, U: ?Sized>() where u64: From<T> {
- | ++++++++++++++++++
+ LL | fn check<T: Iterator, U: ?Sized>(), u64: From<T> {
56
56
57 error[E0277]: the trait bound `u64: From<<T as Iterator>::Item>` is not satisfied
62 |
62 |
63 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
64 |
- LL | fn check<T: Iterator, U: ?Sized>() where u64: From<<T as Iterator>::Item> {
- | ++++++++++++++++++++++++++++++++++++++
+ LL | fn check<T: Iterator, U: ?Sized>(), u64: From<<T as Iterator>::Item> {
67
67
68 error[E0277]: the trait bound `Misc<_>: From<T>` is not satisfied
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/suggest-where-clause/suggest-where-clause.stderr
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/suggest-where-clause/suggest-where-clause.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/suggest-where-clause.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/traits/suggest-where-clause.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/suggest-where-clause" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/suggest-where-clause/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the size for values of type `U` cannot be known at compilation time
|
|
LL | fn check<T: Iterator, U: ?Sized>() {
| - this type parameter needs to be `std::marker::Sized`
LL | // suggest a where-clause, if needed
LL | mem::size_of::<U>();
|
note: required by a bound in `std::mem::size_of`
--> /checkout/library/core/src/mem/mod.rs:314:22
|
|
LL | pub const fn size_of<T>() -> usize {
| ^ required by this bound in `std::mem::size_of`
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
LL - fn check<T: Iterator, U: ?Sized>() {
LL + fn check<T: Iterator, U>() {
error[E0277]: the size for values of type `U` cannot be known at compilation time
--> /checkout/src/test/ui/traits/suggest-where-clause.rs:10:5
|
|
LL | fn check<T: Iterator, U: ?Sized>() {
| - this type parameter needs to be `std::marker::Sized`
...
LL | mem::size_of::<Misc<U>>();
|
|
note: required because it appears within the type `Misc<U>`
|
|
LL | struct Misc<T:?Sized>(T);
note: required by a bound in `std::mem::size_of`
--> /checkout/library/core/src/mem/mod.rs:314:22
|
|
LL | pub const fn size_of<T>() -> usize {
| ^ required by this bound in `std::mem::size_of`
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
LL - fn check<T: Iterator, U: ?Sized>() {
LL + fn check<T: Iterator, U>() {
error[E0277]: the trait bound `u64: From<T>` is not satisfied
|
|
LL | <u64 as From<T>>::from;
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `From<T>` is not implemented for `u64`
|
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn check<T: Iterator, U: ?Sized>(), u64: From<T> {
error[E0277]: the trait bound `u64: From<<T as Iterator>::Item>` is not satisfied
|
|
LL | <u64 as From<<T as Iterator>::Item>>::from;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<<T as Iterator>::Item>` is not implemented for `u64`
|
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn check<T: Iterator, U: ?Sized>(), u64: From<<T as Iterator>::Item> {
error[E0277]: the trait bound `Misc<_>: From<T>` is not satisfied
|
|
LL | <Misc<_> as From<T>>::from;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<T>` is not implemented for `Misc<_>`
error[E0277]: the size for values of type `[T]` cannot be known at compilation time
|
|
LL | mem::size_of::<[T]>();
|
= help: the trait `Sized` is not implemented for `[T]`
note: required by a bound in `std::mem::size_of`
--> /checkout/library/core/src/mem/mod.rs:314:22
--> /checkout/library/core/src/mem/mod.rs:314:22
|
LL | pub const fn size_of<T>() -> usize {
| ^ required by this bound in `std::mem::size_of`
error[E0277]: the size for values of type `[&U]` cannot be known at compilation time
|
|
LL | mem::size_of::<[&U]>();
|
= help: the trait `Sized` is not implemented for `[&U]`
note: required by a bound in `std::mem::size_of`
--> /checkout/library/core/src/mem/mod.rs:314:22
--> /checkout/library/core/src/mem/mod.rs:314:22
|
LL | pub const fn size_of<T>() -> usize {
| ^ required by this bound in `std::mem::size_of`
error: aborting due to 7 previous errors
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
------------------------------------------
---- [ui] src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs stdout ----
diff of stderr:
7 = note: required because of the requirements on the impl of `Into<&'static B>` for `&A`
8 help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
9 |
- LL | fn f<A, B: 'static>(a: &'static A, b: B) -> (X<A, B>, X<B, A>) where &'static B: From<&A> {
- | ++++++++++++++++++++++++++
+ LL | fn f<A, B: 'static>(a: &'static A, b: B) -> (X<A, B>, X<B, A>), &'static B: From<&A> {
12
13 error: aborting due to previous error
14
---
To only update this specific test, also pass `--test-args type-alias-impl-trait/multiple-def-uses-in-one-fn.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `&'static B: From<&A>` is not satisfied
|
|
LL | fn f<A, B: 'static>(a: &'static A, b: B) -> (X<A, B>, X<B, A>) {
| ^^^^^^^^^^^^^^^^^^ the trait `From<&A>` is not implemented for `&'static B`
|
= note: required because of the requirements on the impl of `Into<&'static B>` for `&A`
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn f<A, B: 'static>(a: &'static A, b: B) -> (X<A, B>, X<B, A>), &'static B: From<&A> {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
---
12 | ^^^^ required by this bound in `is_send`
13 help: consider further restricting the associated type
14 |
- LL | fn bar<T:Trait+Send>() where <T as Trait>::AssocType: Send {
- | +++++++++++++++++++++++++++++++++++
+ LL | fn bar<T:Trait+Send>(), <T as Trait>::AssocType: Send {
17
18 error: aborting due to previous error
19
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/typeck/typeck-default-trait-impl-assoc-type/typeck-default-trait-impl-assoc-type.stderr
diff of fixed:
7 type AssocType;
8 fn dummy(&self) { }
9 }
- fn bar<T:Trait+Send>() where <T as Trait>::AssocType: Send {
+ fn bar<T:Trait+Send>(), <T as Trait>::AssocType: Send {
11 is_send::<T::AssocType>(); //~ ERROR E0277
13
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/typeck/typeck-default-trait-impl-assoc-type/typeck-default-trait-impl-assoc-type.fixed
To only update this specific test, also pass `--test-args typeck/typeck-default-trait-impl-assoc-type.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/typeck/typeck-default-trait-impl-assoc-type.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/typeck/typeck-default-trait-impl-assoc-type" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/typeck/typeck-default-trait-impl-assoc-type/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `<T as Trait>::AssocType` cannot be sent between threads safely
|
|
LL | is_send::<T::AssocType>(); //~ ERROR E0277
| ^^^^^^^^^^^^ `<T as Trait>::AssocType` cannot be sent between threads safely
|
= help: the trait `Send` is not implemented for `<T as Trait>::AssocType`
note: required by a bound in `is_send`
|
|
LL | fn is_send<T:Send>() {
| ^^^^ required by this bound in `is_send`
|
|
LL | fn bar<T:Trait+Send>(), <T as Trait>::AssocType: Send {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
I'm curious if changing the size of hir generics has any noticeable effect on perf, since most people would be messing with it behind a &hir::Generics<'_> reference
The job x86_64-gnu-llvm-12 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
- help: consider restricting type parameter `T`
Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu
+ help: consider further restricting type parameter `T`
93 |
- LL | fn duplicate_custom_1<T: Copy + Trait>(t: S<T>) -> (S<T>, S<T>) where {
- | ++++++++++++++
+ LL | fn duplicate_custom_1<T>(t: S<T>) -> (S<T>, S<T>) where, T: Trait, T: Copy {
96
97 error[E0382]: use of moved value: `t`
98 --> $DIR/use_of_moved_value_copy_suggestions.rs:52:9
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/moves/use_of_moved_value_copy_suggestions/use_of_moved_value_copy_suggestions.stderr
diff of fixed:
39 trait B {}
40
41 // Test where bounds are added with different bound placements
- fn duplicate_custom_1<T: Copy + Trait>(t: S<T>) -> (S<T>, S<T>) where {
+ fn duplicate_custom_1<T>(t: S<T>) -> (S<T>, S<T>) where, T: Trait, T: Copy {
43 //~^ HELP consider restricting type parameter `T`
44 (t, t) //~ use of moved value: `t`
The actual fixed differed from the expected fixed.
The actual fixed differed from the expected fixed.
Actual fixed saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/moves/use_of_moved_value_copy_suggestions/use_of_moved_value_copy_suggestions.fixed
To only update this specific test, also pass `--test-args moves/use_of_moved_value_copy_suggestions.rs`
error: 2 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/moves/use_of_moved_value_copy_suggestions" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/moves/use_of_moved_value_copy_suggestions/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0382]: use of moved value: `t`
|
|
LL | fn duplicate_t<T>(t: T) -> (T, T) {
| - move occurs because `t` has type `T`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameter `T`
|
|
LL | fn duplicate_t<T: Copy>(t: T) -> (T, T) {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:11:9
|
|
LL | fn duplicate_opt<T>(t: Option<T>) -> (Option<T>, Option<T>) {
| - move occurs because `t` has type `Option<T>`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameter `T`
|
|
LL | fn duplicate_opt<T: Copy>(t: Option<T>) -> (Option<T>, Option<T>) {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:16:9
|
|
LL | fn duplicate_tup1<T>(t: (T,)) -> ((T,), (T,)) {
| - move occurs because `t` has type `(T,)`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameter `T`
|
|
LL | fn duplicate_tup1<T: Copy>(t: (T,)) -> ((T,), (T,)) {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:21:9
|
|
LL | fn duplicate_tup2<A, B>(t: (A, B)) -> ((A, B), (A, B)) {
| - move occurs because `t` has type `(A, B)`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameters
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameters
|
|
LL | fn duplicate_tup2<A: Copy, B: Copy>(t: (A, B)) -> ((A, B), (A, B)) {
| ++++++ ++++++
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:26:9
|
|
LL | fn duplicate_custom<T>(t: S<T>) -> (S<T>, S<T>) {
| - move occurs because `t` has type `S<T>`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameter `T`
|
|
LL | fn duplicate_custom<T: Copy + Trait>(t: S<T>) -> (S<T>, S<T>) {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:44:9
|
|
LL | fn duplicate_custom_1<T>(t: S<T>) -> (S<T>, S<T>) where {
| - move occurs because `t` has type `S<T>`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider further restricting type parameter `T`
|
|
LL | fn duplicate_custom_1<T>(t: S<T>) -> (S<T>, S<T>) where, T: Trait, T: Copy {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:52:9
|
|
LL | fn duplicate_custom_2<T>(t: S<T>) -> (S<T>, S<T>)
| - move occurs because `t` has type `S<T>`, which does not implement the `Copy` trait
...
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider further restricting this bound
|
|
LL | T: A + Copy + Trait,
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:61:9
|
|
LL | fn duplicate_custom_3<T>(t: S<T>) -> (S<T>, S<T>)
| - move occurs because `t` has type `S<T>`, which does not implement the `Copy` trait
...
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider further restricting this bound
|
|
LL | T: A + Copy + Trait,
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:69:9
|
|
LL | fn duplicate_custom_4<T: A>(t: S<T>) -> (S<T>, S<T>)
| - move occurs because `t` has type `S<T>`, which does not implement the `Copy` trait
...
LL | (t, t) //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider further restricting this bound
|
|
LL | fn duplicate_custom_4<T: A + Copy + Trait>(t: S<T>) -> (S<T>, S<T>)
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:75:9
|
|
LL | fn existing_colon<T:>(t: T) {
| - move occurs because `t` has type `T`, which does not implement the `Copy` trait
LL | //~^ HELP consider restricting type parameter `T`
LL | [t, t]; //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider restricting type parameter `T`
|
|
LL | fn existing_colon<T: Copy>(t: T) {
error[E0382]: use of moved value: `t`
--> /checkout/src/test/ui/moves/use_of_moved_value_copy_suggestions.rs:83:9
|
|
LL | fn existing_colon_in_where<T>(t: T)
| - move occurs because `t` has type `T`, which does not implement the `Copy` trait
...
LL | [t, t]; //~ use of moved value: `t`
| - ^ value used here after move
| value moved here
|
help: consider further restricting type parameter `T`
|
|
LL | T:, T: Copy
error: aborting due to 11 previous errors
For more information about this error, try `rustc --explain E0382`.
For more information about this error, try `rustc --explain E0382`.
------------------------------------------
---- [ui] src/test/ui/partialeq_help.rs stdout ----
diff of stderr:
19 = help: the trait `PartialEq<T>` is not implemented for `&T`
20 help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
21 |
- LL | fn foo2<T: PartialEq>(a: &T, b: T) where &T: PartialEq<T> {
- | ++++++++++++++++
+ LL | fn foo2<T: PartialEq>(a: &T, b: T) where, &T: PartialEq<T> {
24
25 error: aborting due to 2 previous errors
26
---
To only update this specific test, also pass `--test-args partialeq_help.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/partialeq_help.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/partialeq_help" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/partialeq_help/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: can't compare `&T` with `T`
|
|
LL | a == b; //~ ERROR E0277
| ^^ no implementation for `&T == T`
|
= help: the trait `PartialEq<T>` is not implemented for `&T`
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn foo<T: PartialEq>(a: &T, b: T) where &T: PartialEq<T> {
error[E0277]: can't compare `&T` with `T`
|
|
LL | a == b; //~ ERROR E0277
| ^^ no implementation for `&T == T`
|
= help: the trait `PartialEq<T>` is not implemented for `&T`
help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
|
LL | fn foo2<T: PartialEq>(a: &T, b: T) where, &T: PartialEq<T> {
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.
---
diff of stderr:
10 help: introduce a type parameter with a trait bound instead of using `impl Trait`
11 |
12 LL ~ pub fn print_values<I: IntoIterator>(values: &I)
- LL ~ where <I as IntoIterator>::Item: std::fmt::Display {
+ LL ~ where, <I as IntoIterator>::Item: std::fmt::Display {
15
16 error: aborting due to previous error
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760/issue-97760.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args suggestions/issue-97760.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/suggestions/issue-97760.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/suggestions/issue-97760/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: `<impl IntoIterator as IntoIterator>::Item` doesn't implement `std::fmt::Display`
|
|
LL | println!("{x}");
| ^ `<impl IntoIterator as IntoIterator>::Item` cannot be formatted with the default formatter
|
= help: the trait `std::fmt::Display` is not implemented for `<impl IntoIterator as IntoIterator>::Item`
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: introduce a type parameter with a trait bound instead of using `impl Trait`
|
|
LL ~ pub fn print_values<I: IntoIterator>(values: &I)
LL ~ where, <I as IntoIterator>::Item: std::fmt::Display {
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
:umbrella: The latest upstream changes (presumably #99867) made this pull request unmergeable. Please resolve the merge conflicts.
Closing due to inactivity!