1
Fork 0

Rollup merge of #68760 - Tyg13:compile_fail_ui_test, r=Centril

Issue error on `compile-fail` header in UI test

Fixes #68732

r? @Centril
This commit is contained in:
Mazdak Farrokhzad 2020-02-02 14:15:49 +01:00 committed by GitHub
commit 3a7f1edd81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 168 additions and 194 deletions

View file

@ -1,4 +1,3 @@
// compile-fail
// ignore-tidy-linelength // ignore-tidy-linelength
// NOTE: rustc cannot currently handle bounds of the form `for<'a> <Foo as Bar<'a>>::Assoc: Baz`. // NOTE: rustc cannot currently handle bounds of the form `for<'a> <Foo as Bar<'a>>::Assoc: Baz`.

View file

@ -1,5 +1,5 @@
error[E0277]: `<L1 as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug` error[E0277]: `<L1 as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:32:6 --> $DIR/bad-bounds-on-assoc-in-trait.rs:31:6
| |
LL | impl Case1 for S1 { LL | impl Case1 for S1 {
| ^^^^^ `<L1 as Lam<&'a u8>>::App` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` | ^^^^^ `<L1 as Lam<&'a u8>>::App` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
@ -7,7 +7,7 @@ LL | impl Case1 for S1 {
= help: the trait `for<'a> std::fmt::Debug` is not implemented for `<L1 as Lam<&'a u8>>::App` = help: the trait `for<'a> std::fmt::Debug` is not implemented for `<L1 as Lam<&'a u8>>::App`
error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` is not an iterator error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` is not an iterator
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1 --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:1
| |
LL | fn assume_case1<T: Case1>() { LL | fn assume_case1<T: Case1>() {
| ^ - help: consider further restricting the associated type: `where <<T as Case1>::C as std::iter::Iterator>::Item: std::iter::Iterator` | ^ - help: consider further restricting the associated type: `where <<T as Case1>::C as std::iter::Iterator>::Item: std::iter::Iterator`
@ -24,7 +24,7 @@ LL | | }
= help: the trait `std::iter::Iterator` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item` = help: the trait `std::iter::Iterator` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be sent between threads safely error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be sent between threads safely
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1 --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:1
| |
LL | trait Case1 { LL | trait Case1 {
| ----------- required by `Case1` | ----------- required by `Case1`
@ -44,7 +44,7 @@ LL | | }
= help: the trait `std::marker::Send` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item` = help: the trait `std::marker::Send` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be shared between threads safely error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be shared between threads safely
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1 --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:1
| |
LL | trait Case1 { LL | trait Case1 {
| ----------- required by `Case1` | ----------- required by `Case1`
@ -64,7 +64,7 @@ LL | | }
= help: the trait `std::marker::Sync` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item` = help: the trait `std::marker::Sync` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
error[E0277]: `<_ as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug` error[E0277]: `<_ as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1 --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:1
| |
LL | trait Case1 { LL | trait Case1 {
| ----------- required by `Case1` | ----------- required by `Case1`

View file

@ -1,4 +1,3 @@
// compile-fail
// ignore-tidy-linelength // ignore-tidy-linelength
#![feature(associated_type_bounds)] #![feature(associated_type_bounds)]

View file

@ -1,5 +1,5 @@
warning: the feature `impl_trait_in_bindings` is incomplete and may cause the compiler to crash warning: the feature `impl_trait_in_bindings` is incomplete and may cause the compiler to crash
--> $DIR/duplicate.rs:6:12 --> $DIR/duplicate.rs:5:12
| |
LL | #![feature(impl_trait_in_bindings)] LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
@ -7,7 +7,7 @@ LL | #![feature(impl_trait_in_bindings)]
= note: `#[warn(incomplete_features)]` on by default = note: `#[warn(incomplete_features)]` on by default
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:11:36 --> $DIR/duplicate.rs:10:36
| |
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -15,7 +15,7 @@ LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:13:36 --> $DIR/duplicate.rs:12:36
| |
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -23,7 +23,7 @@ LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:15:39 --> $DIR/duplicate.rs:14:39
| |
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -31,7 +31,7 @@ LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:17:45 --> $DIR/duplicate.rs:16:45
| |
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -39,7 +39,7 @@ LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:19:45 --> $DIR/duplicate.rs:18:45
| |
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -47,7 +47,7 @@ LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:21:48 --> $DIR/duplicate.rs:20:48
| |
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -55,7 +55,7 @@ LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:24:34 --> $DIR/duplicate.rs:23:34
| |
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) } LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -63,7 +63,7 @@ LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:26:34 --> $DIR/duplicate.rs:25:34
| |
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) } LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -71,7 +71,7 @@ LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:28:37 --> $DIR/duplicate.rs:27:37
| |
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) } LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -79,7 +79,7 @@ LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:30:43 --> $DIR/duplicate.rs:29:43
| |
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) } LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -87,7 +87,7 @@ LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:32:43 --> $DIR/duplicate.rs:31:43
| |
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) } LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -95,7 +95,7 @@ LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:34:46 --> $DIR/duplicate.rs:33:46
| |
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) } LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -103,7 +103,7 @@ LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:37:35 --> $DIR/duplicate.rs:36:35
| |
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -111,7 +111,7 @@ LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:39:35 --> $DIR/duplicate.rs:38:35
| |
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -119,7 +119,7 @@ LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:41:38 --> $DIR/duplicate.rs:40:38
| |
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -127,7 +127,7 @@ LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:43:44 --> $DIR/duplicate.rs:42:44
| |
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -135,7 +135,7 @@ LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:45:44 --> $DIR/duplicate.rs:44:44
| |
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -143,7 +143,7 @@ LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:47:47 --> $DIR/duplicate.rs:46:47
| |
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -151,7 +151,7 @@ LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:50:32 --> $DIR/duplicate.rs:49:32
| |
LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {} LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -159,7 +159,7 @@ LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:52:32 --> $DIR/duplicate.rs:51:32
| |
LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {} LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -167,7 +167,7 @@ LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:54:35 --> $DIR/duplicate.rs:53:35
| |
LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {} LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -175,7 +175,7 @@ LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:56:43 --> $DIR/duplicate.rs:55:43
| |
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {} LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -183,7 +183,7 @@ LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:58:43 --> $DIR/duplicate.rs:57:43
| |
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {} LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -191,7 +191,7 @@ LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:60:46 --> $DIR/duplicate.rs:59:46
| |
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {} LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -199,7 +199,7 @@ LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:69:40 --> $DIR/duplicate.rs:68:40
| |
LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {} LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -207,7 +207,7 @@ LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:71:40 --> $DIR/duplicate.rs:70:40
| |
LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {} LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -215,7 +215,7 @@ LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:73:43 --> $DIR/duplicate.rs:72:43
| |
LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {} LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -223,7 +223,7 @@ LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:63:42 --> $DIR/duplicate.rs:62:42
| |
LL | fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> { iter::empty() } LL | fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> { iter::empty() }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -231,7 +231,7 @@ LL | fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> { iter::empty() }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:65:42 --> $DIR/duplicate.rs:64:42
| |
LL | fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> { iter::empty() } LL | fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> { iter::empty() }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -239,7 +239,7 @@ LL | fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> { iter::empty() }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:67:45 --> $DIR/duplicate.rs:66:45
| |
LL | fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> { iter::empty() } LL | fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> { iter::empty() }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -247,7 +247,7 @@ LL | fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> { iter::empty()
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:76:39 --> $DIR/duplicate.rs:75:39
| |
LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty(); LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -255,7 +255,7 @@ LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:78:39 --> $DIR/duplicate.rs:77:39
| |
LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -263,7 +263,7 @@ LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:80:42 --> $DIR/duplicate.rs:79:42
| |
LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -271,7 +271,7 @@ LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:82:40 --> $DIR/duplicate.rs:81:40
| |
LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty(); LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -279,7 +279,7 @@ LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:84:40 --> $DIR/duplicate.rs:83:40
| |
LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -287,7 +287,7 @@ LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:86:43 --> $DIR/duplicate.rs:85:43
| |
LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -295,7 +295,7 @@ LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:89:46 --> $DIR/duplicate.rs:88:46
| |
LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); } LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -303,7 +303,7 @@ LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:91:46 --> $DIR/duplicate.rs:90:46
| |
LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); } LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -311,7 +311,7 @@ LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:93:49 --> $DIR/duplicate.rs:92:49
| |
LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); } LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -319,7 +319,7 @@ LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empt
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:96:35 --> $DIR/duplicate.rs:95:35
| |
LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T; LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -327,7 +327,7 @@ LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:98:35 --> $DIR/duplicate.rs:97:35
| |
LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T; LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -335,7 +335,7 @@ LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:100:38 --> $DIR/duplicate.rs:99:38
| |
LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T; LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -343,7 +343,7 @@ LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:102:44 --> $DIR/duplicate.rs:101:44
| |
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T; LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -351,7 +351,7 @@ LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:104:44 --> $DIR/duplicate.rs:103:44
| |
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T; LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -359,7 +359,7 @@ LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:106:47 --> $DIR/duplicate.rs:105:47
| |
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T; LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -367,13 +367,13 @@ LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:109:1 --> $DIR/duplicate.rs:108:1
| |
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy; LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:109:36 --> $DIR/duplicate.rs:108:36
| |
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy; LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -381,13 +381,13 @@ LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:114:1 --> $DIR/duplicate.rs:113:1
| |
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy; LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:114:36 --> $DIR/duplicate.rs:113:36
| |
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy; LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -395,13 +395,13 @@ LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:119:1 --> $DIR/duplicate.rs:118:1
| |
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy; LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:119:39 --> $DIR/duplicate.rs:118:39
| |
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy; LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -409,13 +409,13 @@ LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:124:1 --> $DIR/duplicate.rs:123:1
| |
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>; LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:124:40 --> $DIR/duplicate.rs:123:40
| |
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>; LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -423,13 +423,13 @@ LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:129:1 --> $DIR/duplicate.rs:128:1
| |
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>; LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:129:40 --> $DIR/duplicate.rs:128:40
| |
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>; LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -437,13 +437,13 @@ LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:134:1 --> $DIR/duplicate.rs:133:1
| |
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>; LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:134:43 --> $DIR/duplicate.rs:133:43
| |
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>; LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -451,7 +451,7 @@ LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:140:36 --> $DIR/duplicate.rs:139:36
| |
LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {} LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -459,7 +459,7 @@ LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:142:36 --> $DIR/duplicate.rs:141:36
| |
LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {} LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -467,7 +467,7 @@ LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:144:39 --> $DIR/duplicate.rs:143:39
| |
LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {} LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -475,7 +475,7 @@ LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:146:34 --> $DIR/duplicate.rs:145:34
| |
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {} LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -483,7 +483,7 @@ LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:148:34 --> $DIR/duplicate.rs:147:34
| |
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {} LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -491,7 +491,7 @@ LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:150:37 --> $DIR/duplicate.rs:149:37
| |
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {} LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -499,7 +499,7 @@ LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:152:45 --> $DIR/duplicate.rs:151:45
| |
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {} LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -507,7 +507,7 @@ LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:154:45 --> $DIR/duplicate.rs:153:45
| |
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {} LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -515,7 +515,7 @@ LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:156:48 --> $DIR/duplicate.rs:155:48
| |
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {} LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -523,7 +523,7 @@ LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:158:46 --> $DIR/duplicate.rs:157:46
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -531,7 +531,7 @@ LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:158:46 --> $DIR/duplicate.rs:157:46
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -539,7 +539,7 @@ LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:161:46 --> $DIR/duplicate.rs:160:46
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -547,7 +547,7 @@ LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:161:46 --> $DIR/duplicate.rs:160:46
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -555,7 +555,7 @@ LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:164:49 --> $DIR/duplicate.rs:163:49
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -563,7 +563,7 @@ LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:164:49 --> $DIR/duplicate.rs:163:49
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -571,7 +571,7 @@ LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:167:43 --> $DIR/duplicate.rs:166:43
| |
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; } LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -579,7 +579,7 @@ LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:169:43 --> $DIR/duplicate.rs:168:43
| |
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; } LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -587,7 +587,7 @@ LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:171:46 --> $DIR/duplicate.rs:170:46
| |
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; } LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -595,7 +595,7 @@ LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:174:40 --> $DIR/duplicate.rs:173:40
| |
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>; LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -603,7 +603,7 @@ LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:178:44 --> $DIR/duplicate.rs:177:44
| |
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>; LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -611,7 +611,7 @@ LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `std::iter::Iterator`) is already specified
--> $DIR/duplicate.rs:182:43 --> $DIR/duplicate.rs:181:43
| |
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>; LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -619,109 +619,109 @@ LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| `Item` bound here first | `Item` bound here first
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:109:24 --> $DIR/duplicate.rs:108:24
| |
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy; LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:109:36 --> $DIR/duplicate.rs:108:36
| |
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy; LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:114:24 --> $DIR/duplicate.rs:113:24
| |
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy; LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:114:36 --> $DIR/duplicate.rs:113:36
| |
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy; LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:119:24 --> $DIR/duplicate.rs:118:24
| |
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy; LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:119:39 --> $DIR/duplicate.rs:118:39
| |
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy; LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:124:28 --> $DIR/duplicate.rs:123:28
| |
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>; LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:124:40 --> $DIR/duplicate.rs:123:40
| |
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>; LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:129:28 --> $DIR/duplicate.rs:128:28
| |
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>; LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:129:40 --> $DIR/duplicate.rs:128:40
| |
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>; LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:134:28 --> $DIR/duplicate.rs:133:28
| |
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>; LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:134:43 --> $DIR/duplicate.rs:133:43
| |
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>; LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:174:28 --> $DIR/duplicate.rs:173:28
| |
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>; LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:174:40 --> $DIR/duplicate.rs:173:40
| |
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>; LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:178:32 --> $DIR/duplicate.rs:177:32
| |
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>; LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:178:44 --> $DIR/duplicate.rs:177:44
| |
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>; LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:182:28 --> $DIR/duplicate.rs:181:28
| |
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>; LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/duplicate.rs:182:43 --> $DIR/duplicate.rs:181:43
| |
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>; LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^

View file

@ -1,5 +1,5 @@
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/implied-region-constraints.rs:19:56 --> $DIR/implied-region-constraints.rs:17:56
| |
LL | fn _bad_st<'a, 'b, T>(x: St<'a, 'b, T>) LL | fn _bad_st<'a, 'b, T>(x: St<'a, 'b, T>)
| -- -- lifetime `'b` defined here | -- -- lifetime `'b` defined here
@ -12,7 +12,7 @@ LL | let _failure_proves_not_implied_outlives_region_b: &'b T = &x.f0;
= help: consider adding the following bound: `'a: 'b` = help: consider adding the following bound: `'a: 'b`
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/implied-region-constraints.rs:40:64 --> $DIR/implied-region-constraints.rs:38:64
| |
LL | fn _bad_en7<'a, 'b, T>(x: En7<'a, 'b, T>) LL | fn _bad_en7<'a, 'b, T>(x: En7<'a, 'b, T>)
| -- -- lifetime `'b` defined here | -- -- lifetime `'b` defined here

View file

@ -1,5 +1,3 @@
// compile-fail
#![feature(associated_type_bounds)] #![feature(associated_type_bounds)]
trait Tr1 { type As1; } trait Tr1 { type As1; }

View file

@ -1,5 +1,5 @@
error[E0623]: lifetime mismatch error[E0623]: lifetime mismatch
--> $DIR/implied-region-constraints.rs:19:64 --> $DIR/implied-region-constraints.rs:17:64
| |
LL | fn _bad_st<'a, 'b, T>(x: St<'a, 'b, T>) LL | fn _bad_st<'a, 'b, T>(x: St<'a, 'b, T>)
| ------------- this type is declared with multiple lifetimes... | ------------- this type is declared with multiple lifetimes...
@ -8,7 +8,7 @@ LL | let _failure_proves_not_implied_outlives_region_b: &'b T = &x.f0;
| ^^^^^ ...but data with one lifetime flows into the other here | ^^^^^ ...but data with one lifetime flows into the other here
error[E0623]: lifetime mismatch error[E0623]: lifetime mismatch
--> $DIR/implied-region-constraints.rs:40:72 --> $DIR/implied-region-constraints.rs:38:72
| |
LL | fn _bad_en7<'a, 'b, T>(x: En7<'a, 'b, T>) LL | fn _bad_en7<'a, 'b, T>(x: En7<'a, 'b, T>)
| -------------- this type is declared with multiple lifetimes... | -------------- this type is declared with multiple lifetimes...

View file

@ -1,4 +1,3 @@
// compile-fail
#![feature(associated_type_bounds)] #![feature(associated_type_bounds)]
#![feature(untagged_unions)] #![feature(untagged_unions)]

View file

@ -1,107 +1,107 @@
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:5:29 --> $DIR/inside-adt.rs:4:29
| |
LL | struct S1 { f: dyn Iterator<Item: Copy> } LL | struct S1 { f: dyn Iterator<Item: Copy> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:8:33 --> $DIR/inside-adt.rs:7:33
| |
LL | struct S2 { f: Box<dyn Iterator<Item: Copy>> } LL | struct S2 { f: Box<dyn Iterator<Item: Copy>> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:11:29 --> $DIR/inside-adt.rs:10:29
| |
LL | struct S3 { f: dyn Iterator<Item: 'static> } LL | struct S3 { f: dyn Iterator<Item: 'static> }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:15:26 --> $DIR/inside-adt.rs:14:26
| |
LL | enum E1 { V(dyn Iterator<Item: Copy>) } LL | enum E1 { V(dyn Iterator<Item: Copy>) }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:18:30 --> $DIR/inside-adt.rs:17:30
| |
LL | enum E2 { V(Box<dyn Iterator<Item: Copy>>) } LL | enum E2 { V(Box<dyn Iterator<Item: Copy>>) }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:21:26 --> $DIR/inside-adt.rs:20:26
| |
LL | enum E3 { V(dyn Iterator<Item: 'static>) } LL | enum E3 { V(dyn Iterator<Item: 'static>) }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:25:28 --> $DIR/inside-adt.rs:24:28
| |
LL | union U1 { f: dyn Iterator<Item: Copy> } LL | union U1 { f: dyn Iterator<Item: Copy> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:28:32 --> $DIR/inside-adt.rs:27:32
| |
LL | union U2 { f: Box<dyn Iterator<Item: Copy>> } LL | union U2 { f: Box<dyn Iterator<Item: Copy>> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: associated type bounds are not allowed within structs, enums, or unions error: associated type bounds are not allowed within structs, enums, or unions
--> $DIR/inside-adt.rs:31:28 --> $DIR/inside-adt.rs:30:28
| |
LL | union U3 { f: dyn Iterator<Item: 'static> } LL | union U3 { f: dyn Iterator<Item: 'static> }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:5:29 --> $DIR/inside-adt.rs:4:29
| |
LL | struct S1 { f: dyn Iterator<Item: Copy> } LL | struct S1 { f: dyn Iterator<Item: Copy> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:8:33 --> $DIR/inside-adt.rs:7:33
| |
LL | struct S2 { f: Box<dyn Iterator<Item: Copy>> } LL | struct S2 { f: Box<dyn Iterator<Item: Copy>> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:11:29 --> $DIR/inside-adt.rs:10:29
| |
LL | struct S3 { f: dyn Iterator<Item: 'static> } LL | struct S3 { f: dyn Iterator<Item: 'static> }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:15:26 --> $DIR/inside-adt.rs:14:26
| |
LL | enum E1 { V(dyn Iterator<Item: Copy>) } LL | enum E1 { V(dyn Iterator<Item: Copy>) }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:18:30 --> $DIR/inside-adt.rs:17:30
| |
LL | enum E2 { V(Box<dyn Iterator<Item: Copy>>) } LL | enum E2 { V(Box<dyn Iterator<Item: Copy>>) }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:21:26 --> $DIR/inside-adt.rs:20:26
| |
LL | enum E3 { V(dyn Iterator<Item: 'static>) } LL | enum E3 { V(dyn Iterator<Item: 'static>) }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:25:28 --> $DIR/inside-adt.rs:24:28
| |
LL | union U1 { f: dyn Iterator<Item: Copy> } LL | union U1 { f: dyn Iterator<Item: Copy> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:28:32 --> $DIR/inside-adt.rs:27:32
| |
LL | union U2 { f: Box<dyn Iterator<Item: Copy>> } LL | union U2 { f: Box<dyn Iterator<Item: Copy>> }
| ^^^^^^^^^^ | ^^^^^^^^^^
error: could not find defining uses error: could not find defining uses
--> $DIR/inside-adt.rs:31:28 --> $DIR/inside-adt.rs:30:28
| |
LL | union U3 { f: dyn Iterator<Item: 'static> } LL | union U3 { f: dyn Iterator<Item: 'static> }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,5 +1,5 @@
error: future cannot be sent between threads safely error: future cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:50:5 --> $DIR/async-fn-nonsend.rs:49:5
| |
LL | fn assert_send(_: impl Send) {} LL | fn assert_send(_: impl Send) {}
| ----------- ---- required by this bound in `assert_send` | ----------- ---- required by this bound in `assert_send`
@ -9,7 +9,7 @@ LL | assert_send(local_dropped_before_await());
| |
= help: within `impl std::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<()>` = help: within `impl std::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<()>`
note: future is not `Send` as this value is used across an await note: future is not `Send` as this value is used across an await
--> $DIR/async-fn-nonsend.rs:25:5 --> $DIR/async-fn-nonsend.rs:24:5
| |
LL | let x = non_send(); LL | let x = non_send();
| - has type `impl std::fmt::Debug` | - has type `impl std::fmt::Debug`
@ -20,7 +20,7 @@ LL | }
| - `x` is later dropped here | - `x` is later dropped here
error: future cannot be sent between threads safely error: future cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:52:5 --> $DIR/async-fn-nonsend.rs:51:5
| |
LL | fn assert_send(_: impl Send) {} LL | fn assert_send(_: impl Send) {}
| ----------- ---- required by this bound in `assert_send` | ----------- ---- required by this bound in `assert_send`
@ -30,7 +30,7 @@ LL | assert_send(non_send_temporary_in_match());
| |
= help: within `impl std::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<()>` = help: within `impl std::future::Future`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<()>`
note: future is not `Send` as this value is used across an await note: future is not `Send` as this value is used across an await
--> $DIR/async-fn-nonsend.rs:34:20 --> $DIR/async-fn-nonsend.rs:33:20
| |
LL | match Some(non_send()) { LL | match Some(non_send()) {
| ---------- has type `impl std::fmt::Debug` | ---------- has type `impl std::fmt::Debug`
@ -41,7 +41,7 @@ LL | }
| - `non_send()` is later dropped here | - `non_send()` is later dropped here
error: future cannot be sent between threads safely error: future cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:54:5 --> $DIR/async-fn-nonsend.rs:53:5
| |
LL | fn assert_send(_: impl Send) {} LL | fn assert_send(_: impl Send) {}
| ----------- ---- required by this bound in `assert_send` | ----------- ---- required by this bound in `assert_send`
@ -51,7 +51,7 @@ LL | assert_send(non_sync_with_method_call());
| |
= help: the trait `std::marker::Send` is not implemented for `dyn std::fmt::Write` = help: the trait `std::marker::Send` is not implemented for `dyn std::fmt::Write`
note: future is not `Send` as this value is used across an await note: future is not `Send` as this value is used across an await
--> $DIR/async-fn-nonsend.rs:43:9 --> $DIR/async-fn-nonsend.rs:42:9
| |
LL | let f: &mut std::fmt::Formatter = panic!(); LL | let f: &mut std::fmt::Formatter = panic!();
| - has type `&mut std::fmt::Formatter<'_>` | - has type `&mut std::fmt::Formatter<'_>`

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,5 +1,5 @@
error: expected one of `fn` or `unsafe`, found keyword `const` error: expected one of `fn` or `unsafe`, found keyword `const`
--> $DIR/no-async-const.rs:5:11 --> $DIR/no-async-const.rs:4:11
| |
LL | pub async const fn x() {} LL | pub async const fn x() {}
| ^^^^^ expected one of `fn` or `unsafe` | ^^^^^ expected one of `fn` or `unsafe`

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,11 +1,11 @@
error: expected identifier, found keyword `async` error: expected identifier, found keyword `async`
--> $DIR/no-const-async.rs:5:11 --> $DIR/no-const-async.rs:4:11
| |
LL | pub const async fn x() {} LL | pub const async fn x() {}
| ^^^^^ expected identifier, found keyword | ^^^^^ expected identifier, found keyword
error: expected `:`, found keyword `fn` error: expected `:`, found keyword `fn`
--> $DIR/no-const-async.rs:5:17 --> $DIR/no-const-async.rs:4:17
| |
LL | pub const async fn x() {} LL | pub const async fn x() {}
| ^^ expected `:` | ^^ expected `:`

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,5 +1,5 @@
error[E0382]: use of moved value: `s.x` error[E0382]: use of moved value: `s.x`
--> $DIR/no-move-across-await-struct.rs:8:5 --> $DIR/no-move-across-await-struct.rs:7:5
| |
LL | needs_vec(s.x).await; LL | needs_vec(s.x).await;
| --- value moved here | --- value moved here

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,5 +1,5 @@
error[E0382]: use of moved value: `x.1` error[E0382]: use of moved value: `x.1`
--> $DIR/no-move-across-await-tuple.rs:9:5 --> $DIR/no-move-across-await-tuple.rs:8:5
| |
LL | drop(x.1); LL | drop(x.1);
| --- value moved here | --- value moved here

View file

@ -1,4 +1,3 @@
// compile-fail
// edition:2018 // edition:2018
// compile-flags: --crate-type lib // compile-flags: --crate-type lib

View file

@ -1,5 +1,5 @@
error[E0381]: use of possibly-uninitialized variable: `y` error[E0381]: use of possibly-uninitialized variable: `y`
--> $DIR/no-non-guaranteed-initialization.rs:10:5 --> $DIR/no-non-guaranteed-initialization.rs:9:5
| |
LL | y LL | y
| ^ use of possibly-uninitialized `y` | ^ use of possibly-uninitialized `y`

View file

@ -1,5 +1,5 @@
error[E0499]: cannot borrow `*f` as mutable more than once at a time error[E0499]: cannot borrow `*f` as mutable more than once at a time
--> $DIR/two-phase-nonrecv-autoref.rs:58:11 --> $DIR/two-phase-nonrecv-autoref.rs:51:11
| |
LL | f(f(10)); LL | f(f(10));
| - ^ second mutable borrow occurs here | - ^ second mutable borrow occurs here
@ -8,7 +8,7 @@ LL | f(f(10));
| first borrow later used by call | first borrow later used by call
error[E0382]: use of moved value: `f` error[E0382]: use of moved value: `f`
--> $DIR/two-phase-nonrecv-autoref.rs:66:11 --> $DIR/two-phase-nonrecv-autoref.rs:59:11
| |
LL | fn twice_ten_so<F: FnOnce(i32) -> i32>(f: Box<F>) { LL | fn twice_ten_so<F: FnOnce(i32) -> i32>(f: Box<F>) {
| - move occurs because `f` has type `std::boxed::Box<F>`, which does not implement the `Copy` trait | - move occurs because `f` has type `std::boxed::Box<F>`, which does not implement the `Copy` trait
@ -18,7 +18,7 @@ LL | f(f(10));
| value moved here | value moved here
error[E0499]: cannot borrow `*f` as mutable more than once at a time error[E0499]: cannot borrow `*f` as mutable more than once at a time
--> $DIR/two-phase-nonrecv-autoref.rs:72:11 --> $DIR/two-phase-nonrecv-autoref.rs:65:11
| |
LL | f(f(10)); LL | f(f(10));
| - ^ second mutable borrow occurs here | - ^ second mutable borrow occurs here
@ -27,7 +27,7 @@ LL | f(f(10));
| first borrow later used by call | first borrow later used by call
error[E0382]: use of moved value: `f` error[E0382]: use of moved value: `f`
--> $DIR/two-phase-nonrecv-autoref.rs:80:11 --> $DIR/two-phase-nonrecv-autoref.rs:73:11
| |
LL | fn twice_ten_oo(f: Box<dyn FnOnce(i32) -> i32>) { LL | fn twice_ten_oo(f: Box<dyn FnOnce(i32) -> i32>) {
| - move occurs because `f` has type `std::boxed::Box<dyn std::ops::FnOnce(i32) -> i32>`, which does not implement the `Copy` trait | - move occurs because `f` has type `std::boxed::Box<dyn std::ops::FnOnce(i32) -> i32>`, which does not implement the `Copy` trait
@ -37,7 +37,7 @@ LL | f(f(10));
| value moved here | value moved here
error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable
--> $DIR/two-phase-nonrecv-autoref.rs:119:27 --> $DIR/two-phase-nonrecv-autoref.rs:112:27
| |
LL | double_access(&mut a, &a); LL | double_access(&mut a, &a);
| ------------- ------ ^^ immutable borrow occurs here | ------------- ------ ^^ immutable borrow occurs here
@ -46,7 +46,7 @@ LL | double_access(&mut a, &a);
| mutable borrow later used by call | mutable borrow later used by call
error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable
--> $DIR/two-phase-nonrecv-autoref.rs:145:7 --> $DIR/two-phase-nonrecv-autoref.rs:138:7
| |
LL | i[i[3]] = 4; LL | i[i[3]] = 4;
| --^---- | --^----
@ -56,7 +56,7 @@ LL | i[i[3]] = 4;
| mutable borrow later used here | mutable borrow later used here
error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable
--> $DIR/two-phase-nonrecv-autoref.rs:150:7 --> $DIR/two-phase-nonrecv-autoref.rs:143:7
| |
LL | i[i[3]] = i[4]; LL | i[i[3]] = i[4];
| --^---- | --^----

View file

@ -13,13 +13,6 @@
// receivers (namely, in many cases demonstrated below, the error // receivers (namely, in many cases demonstrated below, the error
// would not arise). // would not arise).
// (If we revise the compiler or this test so that the g2p revision
// passes, turn the `rustc_attrs` feature back on and tag the `fn
// main` with `#[rustc_error]` so that this remains a valid
// compile-fail test.)
//
// #![feature(rustc_attrs)]
use std::ops::{Index, IndexMut}; use std::ops::{Index, IndexMut};
fn foo(x: &mut u32, y: u32) { fn foo(x: &mut u32, y: u32) {

View file

@ -1,4 +1,3 @@
// compile-fail
// ignore-tidy-linelength // ignore-tidy-linelength
// edition:2018 // edition:2018

View file

@ -1,5 +1,5 @@
warning: the feature `impl_trait_in_bindings` is incomplete and may cause the compiler to crash warning: the feature `impl_trait_in_bindings` is incomplete and may cause the compiler to crash
--> $DIR/bound-normalization-fail.rs:5:12 --> $DIR/bound-normalization-fail.rs:4:12
| |
LL | #![feature(impl_trait_in_bindings)] LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
@ -7,7 +7,7 @@ LL | #![feature(impl_trait_in_bindings)]
= note: `#[warn(incomplete_features)]` on by default = note: `#[warn(incomplete_features)]` on by default
error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as impl_trait::Trait>::Assoc` error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as impl_trait::Trait>::Assoc`
--> $DIR/bound-normalization-fail.rs:28:32 --> $DIR/bound-normalization-fail.rs:27:32
| |
LL | fn foo_fail<T: Trait>() -> impl FooLike<Output=T::Assoc> { LL | fn foo_fail<T: Trait>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type
@ -19,13 +19,13 @@ LL | fn foo_fail<T: Trait>() -> impl FooLike<Output=T::Assoc> {
= note: the return type of a function must have a statically known size = note: the return type of a function must have a statically known size
error: `impl Trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope error: `impl Trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope
--> $DIR/bound-normalization-fail.rs:44:41 --> $DIR/bound-normalization-fail.rs:43:41
| |
LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> { LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as lifetimes::Trait<'static>>::Assoc` error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as lifetimes::Trait<'static>>::Assoc`
--> $DIR/bound-normalization-fail.rs:44:41 --> $DIR/bound-normalization-fail.rs:43:41
| |
LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> { LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type

View file

@ -1,5 +1,5 @@
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:8:31 --> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:6:31
| |
LL | fn f(self: Pin<&Self>) -> impl Clone { self } LL | fn f(self: Pin<&Self>) -> impl Clone { self }
| - ^^^^^^^^^^ opaque type requires that `'1` must outlive `'static` | - ^^^^^^^^^^ opaque type requires that `'1` must outlive `'static`

View file

@ -1,5 +1,3 @@
// compile-fail
use std::pin::Pin; use std::pin::Pin;
struct Foo; struct Foo;

View file

@ -1,17 +1,17 @@
error: cannot infer an appropriate lifetime error: cannot infer an appropriate lifetime
--> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:8:44 --> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:6:44
| |
LL | fn f(self: Pin<&Self>) -> impl Clone { self } LL | fn f(self: Pin<&Self>) -> impl Clone { self }
| ---------- ^^^^ ...but this borrow... | ---------- ^^^^ ...but this borrow...
| | | |
| this return type evaluates to the `'static` lifetime... | this return type evaluates to the `'static` lifetime...
| |
note: ...can't outlive the anonymous lifetime #1 defined on the method body at 8:5 note: ...can't outlive the anonymous lifetime #1 defined on the method body at 6:5
--> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:8:5 --> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:6:5
| |
LL | fn f(self: Pin<&Self>) -> impl Clone { self } LL | fn f(self: Pin<&Self>) -> impl Clone { self }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: you can add a bound to the return type to make it last less than `'static` and match the anonymous lifetime #1 defined on the method body at 8:5 help: you can add a bound to the return type to make it last less than `'static` and match the anonymous lifetime #1 defined on the method body at 6:5
| |
LL | fn f(self: Pin<&Self>) -> impl Clone + '_ { self } LL | fn f(self: Pin<&Self>) -> impl Clone + '_ { self }
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,5 +1,5 @@
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:8:46 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:6:46
| |
LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f } LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
| - - ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1` | - - ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
@ -8,7 +8,7 @@ LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
| let's call the lifetime of this reference `'2` | let's call the lifetime of this reference `'2`
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:10:69 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:8:69
| |
LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) } LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
| - - ^^^^^^^^^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1` | - - ^^^^^^^^^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
@ -17,7 +17,7 @@ LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self,
| let's call the lifetime of this reference `'2` | let's call the lifetime of this reference `'2`
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:15:58 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:13:58
| |
LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg } LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg }
| -- ---- has type `std::pin::Pin<&'1 Foo>` ^^^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'a` | -- ---- has type `std::pin::Pin<&'1 Foo>` ^^^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'a`

View file

@ -1,5 +1,3 @@
// compile-fail
use std::pin::Pin; use std::pin::Pin;
struct Foo; struct Foo;

View file

@ -1,5 +1,5 @@
error[E0623]: lifetime mismatch error[E0623]: lifetime mismatch
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:8:46 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:6:46
| |
LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f } LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
| ---- ---- ^ ...but data from `f` is returned here | ---- ---- ^ ...but data from `f` is returned here
@ -7,7 +7,7 @@ LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
| this parameter and the return type are declared with different lifetimes... | this parameter and the return type are declared with different lifetimes...
error[E0623]: lifetime mismatch error[E0623]: lifetime mismatch
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:10:76 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:8:76
| |
LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) } LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
| ---- ----------------- ^ ...but data from `f` is returned here | ---- ----------------- ^ ...but data from `f` is returned here
@ -15,7 +15,7 @@ LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self,
| this parameter and the return type are declared with different lifetimes... | this parameter and the return type are declared with different lifetimes...
error[E0623]: lifetime mismatch error[E0623]: lifetime mismatch
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:15:58 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:13:58
| |
LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg } LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg }
| ------ --- ^^^ ...but data from `arg` is returned here | ------ --- ^^^ ...but data from `arg` is returned here

View file

@ -1,5 +1,3 @@
// compile-fail
// check that reservation impls are accounted for in negative reasoning. // check that reservation impls are accounted for in negative reasoning.
#![feature(rustc_attrs)] #![feature(rustc_attrs)]

View file

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `OtherTrait` for type `()`: error[E0119]: conflicting implementations of trait `OtherTrait` for type `()`:
--> $DIR/reservation-impl-coherence-conflict.rs:13:1 --> $DIR/reservation-impl-coherence-conflict.rs:11:1
| |
LL | impl OtherTrait for () {} LL | impl OtherTrait for () {}
| ---------------------- first implementation here | ---------------------- first implementation here

View file

@ -1,5 +1,3 @@
// compile-fail
// check that reservation impls can't be used as normal impls in positive reasoning. // check that reservation impls can't be used as normal impls in positive reasoning.
#![feature(rustc_attrs)] #![feature(rustc_attrs)]

View file

@ -1,5 +1,5 @@
error[E0277]: the trait bound `(): MyTrait` is not satisfied error[E0277]: the trait bound `(): MyTrait` is not satisfied
--> $DIR/reservation-impl-no-use.rs:12:26 --> $DIR/reservation-impl-no-use.rs:10:26
| |
LL | trait MyTrait { fn foo(&self); } LL | trait MyTrait { fn foo(&self); }
| -------------- required by `MyTrait::foo` | -------------- required by `MyTrait::foo`

View file

@ -1,5 +1,3 @@
// compile-fail
// Test that `dyn ... + ?Sized + ...` is okay (though `?Sized` has no effect in trait objects). // Test that `dyn ... + ?Sized + ...` is okay (though `?Sized` has no effect in trait objects).
trait Foo {} trait Foo {}

View file

@ -1,29 +1,29 @@
error: `?Trait` is not permitted in trait object types error: `?Trait` is not permitted in trait object types
--> $DIR/wf-trait-object-maybe-bound.rs:7:15 --> $DIR/wf-trait-object-maybe-bound.rs:5:15
| |
LL | type _0 = dyn ?Sized + Foo; LL | type _0 = dyn ?Sized + Foo;
| ^^^^^^ | ^^^^^^
error: `?Trait` is not permitted in trait object types error: `?Trait` is not permitted in trait object types
--> $DIR/wf-trait-object-maybe-bound.rs:10:21 --> $DIR/wf-trait-object-maybe-bound.rs:8:21
| |
LL | type _1 = dyn Foo + ?Sized; LL | type _1 = dyn Foo + ?Sized;
| ^^^^^^ | ^^^^^^
error: `?Trait` is not permitted in trait object types error: `?Trait` is not permitted in trait object types
--> $DIR/wf-trait-object-maybe-bound.rs:13:21 --> $DIR/wf-trait-object-maybe-bound.rs:11:21
| |
LL | type _2 = dyn Foo + ?Sized + ?Sized; LL | type _2 = dyn Foo + ?Sized + ?Sized;
| ^^^^^^ | ^^^^^^
error: `?Trait` is not permitted in trait object types error: `?Trait` is not permitted in trait object types
--> $DIR/wf-trait-object-maybe-bound.rs:13:30 --> $DIR/wf-trait-object-maybe-bound.rs:11:30
| |
LL | type _2 = dyn Foo + ?Sized + ?Sized; LL | type _2 = dyn Foo + ?Sized + ?Sized;
| ^^^^^^ | ^^^^^^
error: `?Trait` is not permitted in trait object types error: `?Trait` is not permitted in trait object types
--> $DIR/wf-trait-object-maybe-bound.rs:17:15 --> $DIR/wf-trait-object-maybe-bound.rs:15:15
| |
LL | type _3 = dyn ?Sized + Foo; LL | type _3 = dyn ?Sized + Foo;
| ^^^^^^ | ^^^^^^

View file

@ -554,6 +554,9 @@ impl TestProps {
panic!("`{}-fail` header is only supported in UI tests", mode); panic!("`{}-fail` header is only supported in UI tests", mode);
} }
}; };
if config.mode == Mode::Ui && config.parse_name_directive(ln, "compile-fail") {
panic!("`compile-fail` header is useless in UI tests");
}
let fail_mode = if config.parse_name_directive(ln, "check-fail") { let fail_mode = if config.parse_name_directive(ln, "check-fail") {
check_ui("check"); check_ui("check");
Some(FailMode::Check) Some(FailMode::Check)