1
Fork 0

Use type_alias_impl_trait instead of min in compiler and lib

This commit is contained in:
Santiago Pastorino 2021-07-27 09:14:21 -03:00
parent cfc856acf3
commit 5bff8429a0
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
314 changed files with 1192 additions and 2255 deletions

View file

@ -21,7 +21,8 @@
#![feature(iter_map_while)] #![feature(iter_map_while)]
#![feature(maybe_uninit_uninit_array)] #![feature(maybe_uninit_uninit_array)]
#![feature(min_specialization)] #![feature(min_specialization)]
#![feature(min_type_alias_impl_trait)] #![cfg_attr(bootstrap, feature(min_type_alias_impl_trait))]
#![cfg_attr(not(bootstrap), feature(type_alias_impl_trait))]
#![feature(new_uninit)] #![feature(new_uninit)]
#![feature(nll)] #![feature(nll)]
#![feature(once_cell)] #![feature(once_cell)]

View file

@ -489,7 +489,7 @@ declare_features! (
(active, async_closure, "1.37.0", Some(62290), None), (active, async_closure, "1.37.0", Some(62290), None),
/// Allows `impl Trait` to be used inside type aliases (RFC 2515). /// Allows `impl Trait` to be used inside type aliases (RFC 2515).
(incomplete, type_alias_impl_trait, "1.38.0", Some(63063), None), (active, type_alias_impl_trait, "1.38.0", Some(63063), None),
/// Allows the definition of `const extern fn` and `const unsafe extern fn`. /// Allows the definition of `const extern fn` and `const unsafe extern fn`.
(active, const_extern_fn, "1.40.0", Some(64926), None), (active, const_extern_fn, "1.40.0", Some(64926), None),

View file

@ -141,7 +141,8 @@
#![feature(alloc_layout_extra)] #![feature(alloc_layout_extra)]
#![feature(trusted_random_access)] #![feature(trusted_random_access)]
#![feature(try_trait_v2)] #![feature(try_trait_v2)]
#![feature(min_type_alias_impl_trait)] #![cfg_attr(bootstrap, feature(min_type_alias_impl_trait))]
#![cfg_attr(not(bootstrap), feature(type_alias_impl_trait))]
#![feature(associated_type_bounds)] #![feature(associated_type_bounds)]
#![feature(slice_group_by)] #![feature(slice_group_by)]
#![feature(decl_macro)] #![feature(decl_macro)]

View file

@ -1,158 +1,149 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/duplicate.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:10:36 --> $DIR/duplicate.rs:9:36
| |
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:12:36 --> $DIR/duplicate.rs:13:36
| |
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:14:39 --> $DIR/duplicate.rs:17:39
| |
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:16:45 --> $DIR/duplicate.rs:23:29
| |
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:18:45 --> $DIR/duplicate.rs:30:29
| |
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:20:48 --> $DIR/duplicate.rs:37:32
| |
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:23:34 --> $DIR/duplicate.rs:43:34
| |
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) } LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:25:34 --> $DIR/duplicate.rs:47:34
| |
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) } LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:27:37 --> $DIR/duplicate.rs:51:37
| |
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) } LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:29:43 --> $DIR/duplicate.rs:57:29
| |
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:31:43 --> $DIR/duplicate.rs:64:29
| |
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:33:46 --> $DIR/duplicate.rs:71:32
| |
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:36:35 --> $DIR/duplicate.rs:77:35
| |
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | union UI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:38:35 --> $DIR/duplicate.rs:81:35
| |
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:40:38 --> $DIR/duplicate.rs:85:38
| |
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:42:44 --> $DIR/duplicate.rs:91:29
| |
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:44:44 --> $DIR/duplicate.rs:98:29
| |
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:46:47 --> $DIR/duplicate.rs:105:32
| |
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:49:32 --> $DIR/duplicate.rs:111: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
@ -160,7 +151,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:51:32 --> $DIR/duplicate.rs:113: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
@ -168,7 +159,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:53:35 --> $DIR/duplicate.rs:115: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
@ -176,31 +167,31 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:55:43 --> $DIR/duplicate.rs:119:29
| |
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {} LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:57:43 --> $DIR/duplicate.rs:125:29
| |
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {} LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:59:46 --> $DIR/duplicate.rs:131:32
| |
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {} LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:65:40 --> $DIR/duplicate.rs:145: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
@ -208,7 +199,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:67:40 --> $DIR/duplicate.rs:147: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
@ -216,7 +207,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:69:43 --> $DIR/duplicate.rs:149: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
@ -224,7 +215,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:72:35 --> $DIR/duplicate.rs:152: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
@ -232,7 +223,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:74:35 --> $DIR/duplicate.rs:154: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
@ -240,7 +231,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:76:38 --> $DIR/duplicate.rs:156: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
@ -248,31 +239,31 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:78:44 --> $DIR/duplicate.rs:160:29
| |
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T; LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:80:44 --> $DIR/duplicate.rs:165:29
| |
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T; LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:82:47 --> $DIR/duplicate.rs:170:32
| |
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T; LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:85:36 --> $DIR/duplicate.rs:174: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
@ -280,7 +271,7 @@ LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:87:36 --> $DIR/duplicate.rs:176: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
@ -288,7 +279,7 @@ LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:89:39 --> $DIR/duplicate.rs:178: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
@ -296,7 +287,7 @@ LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:91:40 --> $DIR/duplicate.rs:180: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
@ -304,7 +295,7 @@ LL | type ETAI4 = 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:93:40 --> $DIR/duplicate.rs:182: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
@ -312,7 +303,7 @@ LL | type ETAI5 = 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:95:43 --> $DIR/duplicate.rs:184: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
@ -320,7 +311,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:98:36 --> $DIR/duplicate.rs:187: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
@ -328,7 +319,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:100:36 --> $DIR/duplicate.rs:189: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
@ -336,7 +327,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:102:39 --> $DIR/duplicate.rs:191: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
@ -344,7 +335,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:104:34 --> $DIR/duplicate.rs:193:34
| |
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {} LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -352,7 +343,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:106:34 --> $DIR/duplicate.rs:195:34
| |
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {} LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -360,7 +351,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:108:37 --> $DIR/duplicate.rs:197:37
| |
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {} LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -368,79 +359,79 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:110:45 --> $DIR/duplicate.rs:201:29
| |
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {} LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:112:45 --> $DIR/duplicate.rs:207:29
| |
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {} LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:114:48 --> $DIR/duplicate.rs:213:32
| |
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {} LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:116:46 --> $DIR/duplicate.rs:219:32
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | Self: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:116:46 --> $DIR/duplicate.rs:219:32
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | Self: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:119:46 --> $DIR/duplicate.rs:226:32
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | Self: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:119:46 --> $DIR/duplicate.rs:226:32
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | Self: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:122:49 --> $DIR/duplicate.rs:233:35
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | Self: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:122:49 --> $DIR/duplicate.rs:233:35
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | Self: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:132:40 --> $DIR/duplicate.rs:251: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
@ -448,7 +439,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:134:44 --> $DIR/duplicate.rs:253: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
@ -456,7 +447,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:136:43 --> $DIR/duplicate.rs:255: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
@ -464,29 +455,29 @@ LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:125:43 --> $DIR/duplicate.rs:239:34
| |
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; } LL | type A: Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:127:43 --> $DIR/duplicate.rs:243:34
| |
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; } LL | type A: Iterator<Item: Copy, Item: Copy>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:129:46 --> $DIR/duplicate.rs:247:37
| |
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; } LL | type A: Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error: aborting due to 60 previous errors; 1 warning emitted error: aborting due to 60 previous errors
For more information about this error, try `rustc --explain E0719`. For more information about this error, try `rustc --explain E0719`.

View file

@ -1,149 +1,149 @@
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:10:36 --> $DIR/duplicate.rs:9:36
| |
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:12:36 --> $DIR/duplicate.rs:13:36
| |
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:14:39 --> $DIR/duplicate.rs:17:39
| |
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:16:45 --> $DIR/duplicate.rs:23:29
| |
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:18:45 --> $DIR/duplicate.rs:30:29
| |
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:20:48 --> $DIR/duplicate.rs:37:32
| |
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:23:34 --> $DIR/duplicate.rs:43:34
| |
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) } LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:25:34 --> $DIR/duplicate.rs:47:34
| |
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) } LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:27:37 --> $DIR/duplicate.rs:51:37
| |
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) } LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:29:43 --> $DIR/duplicate.rs:57:29
| |
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:31:43 --> $DIR/duplicate.rs:64:29
| |
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:33:46 --> $DIR/duplicate.rs:71:32
| |
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:36:35 --> $DIR/duplicate.rs:77:35
| |
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T } LL | union UI1<T: Iterator<Item: Copy, Item: Send>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:38:35 --> $DIR/duplicate.rs:81:35
| |
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> {
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:40:38 --> $DIR/duplicate.rs:85:38
| |
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> {
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:42:44 --> $DIR/duplicate.rs:91:29
| |
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:44:44 --> $DIR/duplicate.rs:98:29
| |
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:46:47 --> $DIR/duplicate.rs:105:32
| |
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:49:32 --> $DIR/duplicate.rs:111: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
@ -151,7 +151,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:51:32 --> $DIR/duplicate.rs:113: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
@ -159,7 +159,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:53:35 --> $DIR/duplicate.rs:115: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
@ -167,31 +167,31 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:55:43 --> $DIR/duplicate.rs:119:29
| |
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {} LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:57:43 --> $DIR/duplicate.rs:125:29
| |
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {} LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:59:46 --> $DIR/duplicate.rs:131:32
| |
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {} LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:65:40 --> $DIR/duplicate.rs:145: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
@ -199,7 +199,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:67:40 --> $DIR/duplicate.rs:147: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
@ -207,7 +207,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:69:43 --> $DIR/duplicate.rs:149: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
@ -215,7 +215,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:72:35 --> $DIR/duplicate.rs:152: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
@ -223,7 +223,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:74:35 --> $DIR/duplicate.rs:154: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
@ -231,7 +231,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:76:38 --> $DIR/duplicate.rs:156: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
@ -239,31 +239,31 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:78:44 --> $DIR/duplicate.rs:160:29
| |
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T; LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:80:44 --> $DIR/duplicate.rs:165:29
| |
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T; LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:82:47 --> $DIR/duplicate.rs:170:32
| |
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T; LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:85:36 --> $DIR/duplicate.rs:174: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
@ -271,7 +271,7 @@ LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:87:36 --> $DIR/duplicate.rs:176: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
@ -279,7 +279,7 @@ LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:89:39 --> $DIR/duplicate.rs:178: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
@ -287,7 +287,7 @@ LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:91:40 --> $DIR/duplicate.rs:180: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
@ -295,7 +295,7 @@ LL | type ETAI4 = 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:93:40 --> $DIR/duplicate.rs:182: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
@ -303,7 +303,7 @@ LL | type ETAI5 = 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:95:43 --> $DIR/duplicate.rs:184: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
@ -311,7 +311,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:98:36 --> $DIR/duplicate.rs:187: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
@ -319,7 +319,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:100:36 --> $DIR/duplicate.rs:189: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
@ -327,7 +327,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:102:39 --> $DIR/duplicate.rs:191: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
@ -335,7 +335,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:104:34 --> $DIR/duplicate.rs:193:34
| |
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {} LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -343,7 +343,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:106:34 --> $DIR/duplicate.rs:195:34
| |
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {} LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
@ -351,7 +351,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:108:37 --> $DIR/duplicate.rs:197:37
| |
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {} LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
@ -359,79 +359,79 @@ 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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:110:45 --> $DIR/duplicate.rs:201:29
| |
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {} LL | T: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:112:45 --> $DIR/duplicate.rs:207:29
| |
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {} LL | T: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:114:48 --> $DIR/duplicate.rs:213:32
| |
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {} LL | T: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:116:46 --> $DIR/duplicate.rs:219:32
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | Self: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:116:46 --> $DIR/duplicate.rs:219:32
| |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} LL | Self: Iterator<Item: Copy, Item: Send>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:119:46 --> $DIR/duplicate.rs:226:32
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | Self: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:119:46 --> $DIR/duplicate.rs:226:32
| |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} LL | Self: Iterator<Item: Copy, Item: Copy>,
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:122:49 --> $DIR/duplicate.rs:233:35
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | Self: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:122:49 --> $DIR/duplicate.rs:233:35
| |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} LL | Self: Iterator<Item: 'static, Item: 'static>,
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:132:40 --> $DIR/duplicate.rs:251: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
@ -439,7 +439,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:134:44 --> $DIR/duplicate.rs:253: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
@ -447,7 +447,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 `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:136:43 --> $DIR/duplicate.rs:255: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
@ -455,28 +455,28 @@ LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:125:43 --> $DIR/duplicate.rs:239:34
| |
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; } LL | type A: Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:127:43 --> $DIR/duplicate.rs:243:34
| |
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; } LL | type A: Iterator<Item: Copy, Item: Copy>;
| ---------- ^^^^^^^^^^ re-bound here | ---------- ^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
--> $DIR/duplicate.rs:129:46 --> $DIR/duplicate.rs:247:37
| |
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; } LL | type A: Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here | ------------- ^^^^^^^^^^^^^ re-bound here
| | | |
| `Item` bound here first | `Item` bound here first
error: aborting due to 60 previous errors error: aborting due to 60 previous errors

View file

@ -2,49 +2,111 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![feature(untagged_unions)] #![feature(untagged_unions)]
use std::iter; use std::iter;
struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T } struct SI1<T: Iterator<Item: Copy, Item: Send>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } struct SI2<T: Iterator<Item: Copy, Item: Copy>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } struct SI3<T: Iterator<Item: 'static, Item: 'static>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
struct SW1<T>
where
T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
struct SW2<T>
where
T: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
struct SW3<T>
where
T: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) } enum EI1<T: Iterator<Item: Copy, Item: Send>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) } V(T),
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) } enum EI2<T: Iterator<Item: Copy, Item: Copy>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) } V(T),
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) } enum EI3<T: Iterator<Item: 'static, Item: 'static>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) } V(T),
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
enum EW1<T>
where
T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
V(T),
}
enum EW2<T>
where
T: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
V(T),
}
enum EW3<T>
where
T: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
V(T),
}
union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T } union UI1<T: Iterator<Item: Copy, Item: Send>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T } union UI2<T: Iterator<Item: Copy, Item: Copy>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T } union UI3<T: Iterator<Item: 'static, Item: 'static>> {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T } f: T,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
union UW1<T>
where
T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
union UW2<T>
where
T: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
union UW3<T>
where
T: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
f: T,
}
fn FI1<T: Iterator<Item: Copy, Item: Send>>() {} fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
@ -52,16 +114,34 @@ fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {} fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {} fn FW1<T>()
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] where
fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {} T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {} {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
fn FW2<T>()
where
T: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
}
fn FW3<T>()
where
T: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
}
fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> { iter::empty() } fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> {
fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> { iter::empty() } iter::empty()
fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> { iter::empty() } }
fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> {
iter::empty()
}
fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> {
iter::empty()
}
fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {} fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {} fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
@ -75,12 +155,21 @@ type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T; type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T; type TAW1<T>
where
T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T; = T;
type TAW2<T>
where
T: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T; = T;
type TAW3<T>
where
T: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
= T;
type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy; type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
@ -107,27 +196,57 @@ trait TRS2: Iterator<Item: Copy, Item: Copy> {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
trait TRS3: Iterator<Item: 'static, Item: 'static> {} trait TRS3: Iterator<Item: 'static, Item: 'static> {}
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {} trait TRW1<T>
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] where
trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {} T: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {} {
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {} trait TRW2<T>
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] where
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] T: Iterator<Item: Copy, Item: Copy>,
trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {} //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] {
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] }
trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {} trait TRW3<T>
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] where
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] T: Iterator<Item: 'static, Item: 'static>,
trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; } //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] {
trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; } }
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] trait TRSW1
trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; } where
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] Self: Iterator<Item: Copy, Item: Send>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
}
trait TRSW2
where
Self: Iterator<Item: Copy, Item: Copy>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
}
trait TRSW3
where
Self: Iterator<Item: 'static, Item: 'static>,
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
{
}
trait TRA1 {
type A: Iterator<Item: Copy, Item: Send>;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
}
trait TRA2 {
type A: Iterator<Item: Copy, Item: Copy>;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
}
trait TRA3 {
type A: Iterator<Item: 'static, Item: 'static>;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
}
type TADyn1 = dyn Iterator<Item: Copy, Item: Send>; type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719] //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/trait-alias-impl-trait.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -4,36 +4,58 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
use std::ops::Add; use std::ops::Add;
trait Tr1 { type As1; fn mk(self) -> Self::As1; } trait Tr1 {
trait Tr2<'a> { fn tr2(self) -> &'a Self; } type As1;
fn mk(self) -> Self::As1;
}
trait Tr2<'a> {
fn tr2(self) -> &'a Self;
}
fn assert_copy<T: Copy>(x: T) { let _x = x; let _x = x; } fn assert_copy<T: Copy>(x: T) {
let _x = x;
let _x = x;
}
fn assert_static<T: 'static>(_: T) {} fn assert_static<T: 'static>(_: T) {}
fn assert_forall_tr2<T: for<'a> Tr2<'a>>(_: T) {} fn assert_forall_tr2<T: for<'a> Tr2<'a>>(_: T) {}
struct S1; struct S1;
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
struct S2; struct S2;
impl Tr1 for S1 { type As1 = S2; fn mk(self) -> Self::As1 { S2 } } impl Tr1 for S1 {
type As1 = S2;
fn mk(self) -> Self::As1 {
S2
}
}
type Et1 = impl Tr1<As1: Copy>; type Et1 = impl Tr1<As1: Copy>;
fn def_et1() -> Et1 { S1 } fn def_et1() -> Et1 {
pub fn use_et1() { assert_copy(def_et1().mk()); } S1
}
pub fn use_et1() {
assert_copy(def_et1().mk());
}
type Et2 = impl Tr1<As1: 'static>; type Et2 = impl Tr1<As1: 'static>;
fn def_et2() -> Et2 { S1 } fn def_et2() -> Et2 {
pub fn use_et2() { assert_static(def_et2().mk()); } S1
}
pub fn use_et2() {
assert_static(def_et2().mk());
}
type Et3 = impl Tr1<As1: Clone + Iterator<Item: Add<u8, Output: Into<u8>>>>; type Et3 = impl Tr1<As1: Clone + Iterator<Item: Add<u8, Output: Into<u8>>>>;
fn def_et3() -> Et3 { fn def_et3() -> Et3 {
struct A; struct A;
impl Tr1 for A { impl Tr1 for A {
type As1 = core::ops::Range<u8>; type As1 = core::ops::Range<u8>;
fn mk(self) -> Self::As1 { 0..10 } fn mk(self) -> Self::As1 {
0..10
}
} }
A A
} }
@ -53,14 +75,20 @@ fn def_et4() -> Et4 {
struct A; struct A;
impl Tr1 for A { impl Tr1 for A {
type As1 = A; type As1 = A;
fn mk(self) -> A { A } fn mk(self) -> A {
A
}
} }
impl<'a> Tr2<'a> for A { impl<'a> Tr2<'a> for A {
fn tr2(self) -> &'a Self { &A } fn tr2(self) -> &'a Self {
&A
}
} }
A A
} }
pub fn use_et4() { assert_forall_tr2(def_et4().mk()); } pub fn use_et4() {
assert_forall_tr2(def_et4().mk());
}
fn main() { fn main() {
let _ = use_et1(); let _ = use_et1();

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-63591.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -4,7 +4,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
fn main() {} fn main() {}

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-60655-latebound-regions.rs:8:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -6,7 +6,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
use std::future::Future; use std::future::Future;

View file

@ -1,18 +1,9 @@
error[E0425]: cannot find value `Foo` in this scope error[E0425]: cannot find value `Foo` in this scope
--> $DIR/layout-error.rs:24:17 --> $DIR/layout-error.rs:23:17
| |
LL | let a = Foo; LL | let a = Foo;
| ^^^ not found in this scope | ^^^ not found in this scope
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes error: aborting due to previous error
--> $DIR/layout-error.rs:8:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: aborting due to previous error; 1 warning emitted
For more information about this error, try `rustc --explain E0425`. For more information about this error, try `rustc --explain E0425`.

View file

@ -1,11 +1,11 @@
error[E0425]: cannot find value `Foo` in this scope error[E0425]: cannot find value `Foo` in this scope
--> $DIR/layout-error.rs:24:17 --> $DIR/layout-error.rs:23:17
| |
LL | let a = Foo; LL | let a = Foo;
| ^^^ not found in this scope | ^^^ not found in this scope
error[E0658]: type alias impl trait is not permitted here error[E0658]: type alias impl trait is not permitted here
--> $DIR/layout-error.rs:30:27 --> $DIR/layout-error.rs:29:27
| |
LL | Task::spawn(&POOL, || cb()); LL | Task::spawn(&POOL, || cb());
| ^ | ^

View file

@ -6,7 +6,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
use std::future::Future; use std::future::Future;
pub struct Task<F: Future>(F); pub struct Task<F: Future>(F);

View file

@ -1,17 +1,8 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/metadata-sufficient-for-layout.rs:10:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: fatal error triggered by #[rustc_error] error: fatal error triggered by #[rustc_error]
--> $DIR/metadata-sufficient-for-layout.rs:28:1 --> $DIR/metadata-sufficient-for-layout.rs:27:1
| |
LL | fn main() {} LL | fn main() {}
| ^^^^^^^^^ | ^^^^^^^^^
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,5 +1,5 @@
error: fatal error triggered by #[rustc_error] error: fatal error triggered by #[rustc_error]
--> $DIR/metadata-sufficient-for-layout.rs:28:1 --> $DIR/metadata-sufficient-for-layout.rs:27:1
| |
LL | fn main() {} LL | fn main() {}
| ^^^^^^^^^ | ^^^^^^^^^

View file

@ -8,7 +8,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait, rustc_attrs)] #![feature(min_type_alias_impl_trait, rustc_attrs)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![feature(generator_trait)] #![feature(generator_trait)]
extern crate metadata_sufficient_for_layout; extern crate metadata_sufficient_for_layout;

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/associated-impl-trait-type-generic-trait.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
// build-pass (FIXME(62277): could be check-pass?) // build-pass (FIXME(62277): could be check-pass?)
trait Bar {} trait Bar {}

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/associated-impl-trait-type-trivial.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
// build-pass (FIXME(62277): could be check-pass?) // build-pass (FIXME(62277): could be check-pass?)
trait Bar {} trait Bar {}

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/associated-impl-trait-type.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
// build-pass (FIXME(62277): could be check-pass?) // build-pass (FIXME(62277): could be check-pass?)
trait Bar {} trait Bar {}

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/auto-trait.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>` error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
--> $DIR/auto-trait.rs:24:1 --> $DIR/auto-trait.rs:23:1
| |
LL | impl<T: Send> AnotherTrait for T {} LL | impl<T: Send> AnotherTrait for T {}
| -------------------------------- first implementation here | -------------------------------- first implementation here
@ -16,6 +7,6 @@ LL | impl<T: Send> AnotherTrait for T {}
LL | impl AnotherTrait for D<OpaqueType> { LL | impl AnotherTrait for D<OpaqueType> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<impl OpaqueTrait>` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<impl OpaqueTrait>`
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error
For more information about this error, try `rustc --explain E0119`. For more information about this error, try `rustc --explain E0119`.

View file

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>` error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
--> $DIR/auto-trait.rs:24:1 --> $DIR/auto-trait.rs:23:1
| |
LL | impl<T: Send> AnotherTrait for T {} LL | impl<T: Send> AnotherTrait for T {}
| -------------------------------- first implementation here | -------------------------------- first implementation here

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait OpaqueTrait {} trait OpaqueTrait {}
impl<T> OpaqueTrait for T {} impl<T> OpaqueTrait for T {}

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-55872-1.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0276]: impl has stricter requirements than trait error[E0276]: impl has stricter requirements than trait
--> $DIR/issue-55872-1.rs:17:5 --> $DIR/issue-55872-1.rs:16:5
| |
LL | fn foo<T>() -> Self::E; LL | fn foo<T>() -> Self::E;
| ----------------------- definition of `foo` from trait | ----------------------- definition of `foo` from trait
@ -17,7 +8,7 @@ LL | fn foo<T: Default>() -> Self::E {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)` error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
--> $DIR/issue-55872-1.rs:13:14 --> $DIR/issue-55872-1.rs:12:14
| |
LL | type E = impl Copy; LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S` | ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
@ -29,7 +20,7 @@ LL | impl<S: Default + std::marker::Copy> Bar for S {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)` error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
--> $DIR/issue-55872-1.rs:13:14 --> $DIR/issue-55872-1.rs:12:14
| |
LL | type E = impl Copy; LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T` | ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
@ -41,7 +32,7 @@ LL | fn foo<T: Default + std::marker::Copy>() -> Self::E {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872-1.rs:17:37 --> $DIR/issue-55872-1.rs:16:37
| |
LL | fn foo<T: Default>() -> Self::E { LL | fn foo<T: Default>() -> Self::E {
| _____________________________________^ | _____________________________________^
@ -51,7 +42,7 @@ LL | | (S::default(), T::default())
LL | | } LL | | }
| |_____^ | |_____^
error: aborting due to 4 previous errors; 1 warning emitted error: aborting due to 4 previous errors
Some errors have detailed explanations: E0276, E0277. Some errors have detailed explanations: E0276, E0277.
For more information about an error, try `rustc --explain E0276`. For more information about an error, try `rustc --explain E0276`.

View file

@ -1,5 +1,5 @@
error[E0276]: impl has stricter requirements than trait error[E0276]: impl has stricter requirements than trait
--> $DIR/issue-55872-1.rs:17:5 --> $DIR/issue-55872-1.rs:16:5
| |
LL | fn foo<T>() -> Self::E; LL | fn foo<T>() -> Self::E;
| ----------------------- definition of `foo` from trait | ----------------------- definition of `foo` from trait
@ -8,7 +8,7 @@ LL | fn foo<T: Default>() -> Self::E {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)` error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
--> $DIR/issue-55872-1.rs:13:14 --> $DIR/issue-55872-1.rs:12:14
| |
LL | type E = impl Copy; LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S` | ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
@ -20,7 +20,7 @@ LL | impl<S: Default + std::marker::Copy> Bar for S {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)` error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
--> $DIR/issue-55872-1.rs:13:14 --> $DIR/issue-55872-1.rs:12:14
| |
LL | type E = impl Copy; LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T` | ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
@ -32,7 +32,7 @@ LL | fn foo<T: Default + std::marker::Copy>() -> Self::E {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872-1.rs:17:37 --> $DIR/issue-55872-1.rs:16:37
| |
LL | fn foo<T: Default>() -> Self::E { LL | fn foo<T: Default>() -> Self::E {
| _____________________________________^ | _____________________________________^

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
pub trait Bar { pub trait Bar {
type E: Copy; type E: Copy;

View file

@ -1,20 +1,11 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-55872-2.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0277]: the trait bound `impl Future: Copy` is not satisfied error[E0277]: the trait bound `impl Future: Copy` is not satisfied
--> $DIR/issue-55872-2.rs:16:14 --> $DIR/issue-55872-2.rs:15:14
| |
LL | type E = impl std::marker::Copy; LL | type E = impl std::marker::Copy;
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future` | ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872-2.rs:18:28 --> $DIR/issue-55872-2.rs:17:28
| |
LL | fn foo<T>() -> Self::E { LL | fn foo<T>() -> Self::E {
| ____________________________^ | ____________________________^
@ -23,6 +14,6 @@ LL | | async {}
LL | | } LL | | }
| |_____^ | |_____^
error: aborting due to 2 previous errors; 1 warning emitted error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`. For more information about this error, try `rustc --explain E0277`.

View file

@ -1,11 +1,11 @@
error[E0277]: the trait bound `impl Future: Copy` is not satisfied error[E0277]: the trait bound `impl Future: Copy` is not satisfied
--> $DIR/issue-55872-2.rs:16:14 --> $DIR/issue-55872-2.rs:15:14
| |
LL | type E = impl std::marker::Copy; LL | type E = impl std::marker::Copy;
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future` | ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872-2.rs:18:28 --> $DIR/issue-55872-2.rs:17:28
| |
LL | fn foo<T>() -> Self::E { LL | fn foo<T>() -> Self::E {
| ____________________________^ | ____________________________^

View file

@ -4,7 +4,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
pub trait Bar { pub trait Bar {
type E: Copy; type E: Copy;

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-55872.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872.rs:16:28 --> $DIR/issue-55872.rs:15:28
| |
LL | fn foo<T>() -> Self::E { LL | fn foo<T>() -> Self::E {
| ____________________________^ | ____________________________^
@ -17,5 +8,5 @@ LL | | || ()
LL | | } LL | | }
| |_____^ | |_____^
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,5 +1,5 @@
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
--> $DIR/issue-55872.rs:16:28 --> $DIR/issue-55872.rs:15:28
| |
LL | fn foo<T>() -> Self::E { LL | fn foo<T>() -> Self::E {
| ____________________________^ | ____________________________^

View file

@ -2,7 +2,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
pub trait Bar { pub trait Bar {
type E: Copy; type E: Copy;
@ -14,7 +13,7 @@ impl<S> Bar for S {
type E = impl Copy; type E = impl Copy;
fn foo<T>() -> Self::E { fn foo<T>() -> Self::E {
//~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias //~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
|| () || ()
} }
} }

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-53457.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
type X = impl Clone; type X = impl Clone;

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-78722.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/issue-78722.rs:15:20 --> $DIR/issue-78722.rs:14:20
| |
LL | type F = impl core::future::Future<Output = u8>; LL | type F = impl core::future::Future<Output = u8>;
| -------------------------------------- the expected opaque type | -------------------------------------- the expected opaque type
@ -23,10 +14,10 @@ LL | let f: F = async { 1 };
LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return> LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
| ------------------------------- the found opaque type | ------------------------------- the found opaque type
| |
= note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:8:10>) = note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:7:10>)
found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>) found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>)
= note: distinct uses of `impl Trait` result in different opaque types = note: distinct uses of `impl Trait` result in different opaque types
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error
For more information about this error, try `rustc --explain E0308`. For more information about this error, try `rustc --explain E0308`.

View file

@ -1,5 +1,5 @@
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/issue-78722.rs:15:20 --> $DIR/issue-78722.rs:14:20
| |
LL | type F = impl core::future::Future<Output = u8>; LL | type F = impl core::future::Future<Output = u8>;
| -------------------------------------- the expected opaque type | -------------------------------------- the expected opaque type
@ -14,7 +14,7 @@ LL | let f: F = async { 1 };
LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return> LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
| ------------------------------- the found opaque type | ------------------------------- the found opaque type
| |
= note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:8:10>) = note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:7:10>)
found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>) found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>)
= note: distinct uses of `impl Trait` result in different opaque types = note: distinct uses of `impl Trait` result in different opaque types

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
type F = impl core::future::Future<Output = u8>; type F = impl core::future::Future<Output = u8>;

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/error-handling-2.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds
--> $DIR/error-handling-2.rs:16:60 --> $DIR/error-handling-2.rs:15:60
| |
LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| ^^^^^^^^^ | ^^^^^^^^^
| |
note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 16:8 note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 15:8
--> $DIR/error-handling-2.rs:16:8 --> $DIR/error-handling-2.rs:15:8
| |
LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| ^^ | ^^
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error
For more information about this error, try `rustc --explain E0700`. For more information about this error, try `rustc --explain E0700`.

View file

@ -1,11 +1,11 @@
error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds
--> $DIR/error-handling-2.rs:16:60 --> $DIR/error-handling-2.rs:15:60
| |
LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| ^^^^^^^^^ | ^^^^^^^^^
| |
note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 16:8 note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 15:8
--> $DIR/error-handling-2.rs:16:8 --> $DIR/error-handling-2.rs:15:8
| |
LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| ^^ | ^^

View file

@ -4,7 +4,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#[derive(Clone)] #[derive(Clone)]
struct CopyIfEq<T, U>(T, U); struct CopyIfEq<T, U>(T, U);

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/error-handling.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/error-handling.rs:25:16 --> $DIR/error-handling.rs:24:16
| |
LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| -- -- lifetime `'b` defined here | -- -- lifetime `'b` defined here
@ -20,5 +11,5 @@ LL | let _: &'b i32 = *u.0;
| |
= help: consider adding the following bound: `'a: 'b` = help: consider adding the following bound: `'a: 'b`
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,5 +1,5 @@
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/error-handling.rs:25:16 --> $DIR/error-handling.rs:24:16
| |
LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> { LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
| -- -- lifetime `'b` defined here | -- -- lifetime `'b` defined here

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#[derive(Clone)] #[derive(Clone)]
struct CopyIfEq<T, U>(T, U); struct CopyIfEq<T, U>(T, U);

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/negative-reasoning.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>` error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
--> $DIR/negative-reasoning.rs:22:1 --> $DIR/negative-reasoning.rs:21:1
| |
LL | impl<T: std::fmt::Debug> AnotherTrait for T {} LL | impl<T: std::fmt::Debug> AnotherTrait for T {}
| ------------------------------------------- first implementation here | ------------------------------------------- first implementation here
@ -18,6 +9,6 @@ LL | impl AnotherTrait for D<OpaqueType> {
| |
= note: upstream crates may add a new impl of trait `std::fmt::Debug` for type `impl OpaqueTrait` in future versions = note: upstream crates may add a new impl of trait `std::fmt::Debug` for type `impl OpaqueTrait` in future versions
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error
For more information about this error, try `rustc --explain E0119`. For more information about this error, try `rustc --explain E0119`.

View file

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>` error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
--> $DIR/negative-reasoning.rs:22:1 --> $DIR/negative-reasoning.rs:21:1
| |
LL | impl<T: std::fmt::Debug> AnotherTrait for T {} LL | impl<T: std::fmt::Debug> AnotherTrait for T {}
| ------------------------------------------- first implementation here | ------------------------------------------- first implementation here

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait OpaqueTrait {} trait OpaqueTrait {}
impl<T> OpaqueTrait for T {} impl<T> OpaqueTrait for T {}

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/type-alias-generic-param.rs:8:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -6,7 +6,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait Meow { trait Meow {
type MeowType; type MeowType;
@ -14,7 +13,8 @@ trait Meow {
} }
impl<T, I> Meow for I impl<T, I> Meow for I
where I: Iterator<Item = T> where
I: Iterator<Item = T>,
{ {
type MeowType = impl Iterator<Item = T>; type MeowType = impl Iterator<Item = T>;
fn meow(self) -> Self::MeowType { fn meow(self) -> Self::MeowType {

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/type-alias-impl-trait-in-fn-body.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
use std::fmt::Debug; use std::fmt::Debug;

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-60662.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -4,10 +4,8 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait Animal { trait Animal {}
}
fn main() { fn main() {
pub type ServeFut = impl Animal; pub type ServeFut = impl Animal;

View file

@ -1,20 +1,11 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/inline-trait-and-foreign-items.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: `#[inline]` is ignored on constants warning: `#[inline]` is ignored on constants
--> $DIR/inline-trait-and-foreign-items.rs:10:5 --> $DIR/inline-trait-and-foreign-items.rs:9:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/inline-trait-and-foreign-items.rs:7:9 --> $DIR/inline-trait-and-foreign-items.rs:6:9
| |
LL | #![warn(unused_attributes)] LL | #![warn(unused_attributes)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
@ -22,7 +13,7 @@ LL | #![warn(unused_attributes)]
= note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:14:5 --> $DIR/inline-trait-and-foreign-items.rs:13:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -30,7 +21,7 @@ LL | type T;
| ------- not a function or closure | ------- not a function or closure
warning: `#[inline]` is ignored on constants warning: `#[inline]` is ignored on constants
--> $DIR/inline-trait-and-foreign-items.rs:21:5 --> $DIR/inline-trait-and-foreign-items.rs:20:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -39,7 +30,7 @@ LL | #[inline]
= note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:25:5 --> $DIR/inline-trait-and-foreign-items.rs:24:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -47,7 +38,7 @@ LL | type T = Self;
| -------------- not a function or closure | -------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:28:5 --> $DIR/inline-trait-and-foreign-items.rs:27:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -55,7 +46,7 @@ LL | type U = impl Trait;
| -------------------- not a function or closure | -------------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:33:5 --> $DIR/inline-trait-and-foreign-items.rs:32:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -63,7 +54,7 @@ LL | static X: u32;
| -------------- not a function or closure | -------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:36:5 --> $DIR/inline-trait-and-foreign-items.rs:35:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -71,11 +62,11 @@ LL | type T;
| ------- not a function or closure | ------- not a function or closure
error: could not find defining uses error: could not find defining uses
--> $DIR/inline-trait-and-foreign-items.rs:29:14 --> $DIR/inline-trait-and-foreign-items.rs:28:14
| |
LL | type U = impl Trait; LL | type U = impl Trait;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: aborting due to 6 previous errors; 3 warnings emitted error: aborting due to 6 previous errors; 2 warnings emitted
For more information about this error, try `rustc --explain E0518`. For more information about this error, try `rustc --explain E0518`.

View file

@ -1,11 +1,11 @@
warning: `#[inline]` is ignored on constants warning: `#[inline]` is ignored on constants
--> $DIR/inline-trait-and-foreign-items.rs:10:5 --> $DIR/inline-trait-and-foreign-items.rs:9:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/inline-trait-and-foreign-items.rs:7:9 --> $DIR/inline-trait-and-foreign-items.rs:6:9
| |
LL | #![warn(unused_attributes)] LL | #![warn(unused_attributes)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
@ -13,7 +13,7 @@ LL | #![warn(unused_attributes)]
= note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:14:5 --> $DIR/inline-trait-and-foreign-items.rs:13:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -21,7 +21,7 @@ LL | type T;
| ------- not a function or closure | ------- not a function or closure
warning: `#[inline]` is ignored on constants warning: `#[inline]` is ignored on constants
--> $DIR/inline-trait-and-foreign-items.rs:21:5 --> $DIR/inline-trait-and-foreign-items.rs:20:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -30,7 +30,7 @@ LL | #[inline]
= note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:25:5 --> $DIR/inline-trait-and-foreign-items.rs:24:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -38,7 +38,7 @@ LL | type T = Self;
| -------------- not a function or closure | -------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:28:5 --> $DIR/inline-trait-and-foreign-items.rs:27:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -46,7 +46,7 @@ LL | type U = impl Trait;
| -------------------- not a function or closure | -------------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:33:5 --> $DIR/inline-trait-and-foreign-items.rs:32:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -54,7 +54,7 @@ LL | static X: u32;
| -------------- not a function or closure | -------------- not a function or closure
error[E0518]: attribute should be applied to function or closure error[E0518]: attribute should be applied to function or closure
--> $DIR/inline-trait-and-foreign-items.rs:36:5 --> $DIR/inline-trait-and-foreign-items.rs:35:5
| |
LL | #[inline] LL | #[inline]
| ^^^^^^^^^ | ^^^^^^^^^
@ -62,7 +62,7 @@ LL | type T;
| ------- not a function or closure | ------- not a function or closure
error: could not find defining uses error: could not find defining uses
--> $DIR/inline-trait-and-foreign-items.rs:29:14 --> $DIR/inline-trait-and-foreign-items.rs:28:14
| |
LL | type U = impl Trait; LL | type U = impl Trait;
| ^^^^^^^^^^ | ^^^^^^^^^^

View file

@ -2,7 +2,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![warn(unused_attributes)] #![warn(unused_attributes)]

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73249-2.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-2.rs:29:25 --> $DIR/lint-ctypes-73249-2.rs:28:25
| |
LL | pub fn lint_me() -> A<()>; LL | pub fn lint_me() -> A<()>;
| ^^^^^ not FFI-safe | ^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-2.rs:5:9 --> $DIR/lint-ctypes-73249-2.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-2.rs:29:25 --> $DIR/lint-ctypes-73249-2.rs:28:25
| |
LL | pub fn lint_me() -> A<()>; LL | pub fn lint_me() -> A<()>;
| ^^^^^ not FFI-safe | ^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-2.rs:5:9 --> $DIR/lint-ctypes-73249-2.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,12 +1,11 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait Baz { } pub trait Baz {}
impl Baz for () { } impl Baz for () {}
type Qux = impl Baz; type Qux = impl Baz;

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73249-3.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-3.rs:21:25 --> $DIR/lint-ctypes-73249-3.rs:22:25
| |
LL | pub fn lint_me() -> A; LL | pub fn lint_me() -> A;
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-3.rs:5:9 --> $DIR/lint-ctypes-73249-3.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-3.rs:21:25 --> $DIR/lint-ctypes-73249-3.rs:22:25
| |
LL | pub fn lint_me() -> A; LL | pub fn lint_me() -> A;
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-3.rs:5:9 --> $DIR/lint-ctypes-73249-3.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,16 +1,17 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait Baz { } pub trait Baz {}
impl Baz for u32 { } impl Baz for u32 {}
type Qux = impl Baz; type Qux = impl Baz;
fn assign() -> Qux { 3 } fn assign() -> Qux {
3
}
#[repr(C)] #[repr(C)]
pub struct A { pub struct A {

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73249-5.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-5.rs:21:25 --> $DIR/lint-ctypes-73249-5.rs:22:25
| |
LL | pub fn lint_me() -> A; LL | pub fn lint_me() -> A;
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-5.rs:5:9 --> $DIR/lint-ctypes-73249-5.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73249-5.rs:21:25 --> $DIR/lint-ctypes-73249-5.rs:22:25
| |
LL | pub fn lint_me() -> A; LL | pub fn lint_me() -> A;
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73249-5.rs:5:9 --> $DIR/lint-ctypes-73249-5.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,16 +1,17 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait Baz { } pub trait Baz {}
impl Baz for u32 { } impl Baz for u32 {}
type Qux = impl Baz; type Qux = impl Baz;
fn assign() -> Qux { 3 } fn assign() -> Qux {
3
}
#[repr(transparent)] #[repr(transparent)]
pub struct A { pub struct A {

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73251-1.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73251-1.rs:24:25 --> $DIR/lint-ctypes-73251-1.rs:25:25
| |
LL | pub fn lint_me() -> <u32 as Foo>::Assoc; LL | pub fn lint_me() -> <u32 as Foo>::Assoc;
| ^^^^^^^^^^^^^^^^^^^ not FFI-safe | ^^^^^^^^^^^^^^^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73251-1.rs:5:9 --> $DIR/lint-ctypes-73251-1.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl Baz`, which is not FFI-safe error: `extern` block uses type `impl Baz`, which is not FFI-safe
--> $DIR/lint-ctypes-73251-1.rs:24:25 --> $DIR/lint-ctypes-73251-1.rs:25:25
| |
LL | pub fn lint_me() -> <u32 as Foo>::Assoc; LL | pub fn lint_me() -> <u32 as Foo>::Assoc;
| ^^^^^^^^^^^^^^^^^^^ not FFI-safe | ^^^^^^^^^^^^^^^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73251-1.rs:5:9 --> $DIR/lint-ctypes-73251-1.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,12 +1,11 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait Baz { } pub trait Baz {}
impl Baz for u32 { } impl Baz for u32 {}
type Qux = impl Baz; type Qux = impl Baz;
@ -18,7 +17,9 @@ impl Foo for u32 {
type Assoc = Qux; type Assoc = Qux;
} }
fn assign() -> Qux { 1 } fn assign() -> Qux {
1
}
extern "C" { extern "C" {
pub fn lint_me() -> <u32 as Foo>::Assoc; //~ ERROR: uses type `impl Baz` pub fn lint_me() -> <u32 as Foo>::Assoc; //~ ERROR: uses type `impl Baz`

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73251-2.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl TraitA`, which is not FFI-safe error: `extern` block uses type `impl TraitA`, which is not FFI-safe
--> $DIR/lint-ctypes-73251-2.rs:32:25 --> $DIR/lint-ctypes-73251-2.rs:38:25
| |
LL | pub fn lint_me() -> <AliasB as TraitB>::Assoc; LL | pub fn lint_me() -> <AliasB as TraitB>::Assoc;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe | ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73251-2.rs:5:9 --> $DIR/lint-ctypes-73251-2.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl TraitA`, which is not FFI-safe error: `extern` block uses type `impl TraitA`, which is not FFI-safe
--> $DIR/lint-ctypes-73251-2.rs:32:25 --> $DIR/lint-ctypes-73251-2.rs:38:25
| |
LL | pub fn lint_me() -> <AliasB as TraitB>::Assoc; LL | pub fn lint_me() -> <AliasB as TraitB>::Assoc;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe | ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/lint-ctypes-73251-2.rs:5:9 --> $DIR/lint-ctypes-73251-2.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait TraitA { pub trait TraitA {
@ -16,7 +15,10 @@ pub trait TraitB {
type Assoc; type Assoc;
} }
impl<T> TraitB for T where T: TraitA { impl<T> TraitB for T
where
T: TraitA,
{
type Assoc = <T as TraitA>::Assoc; type Assoc = <T as TraitA>::Assoc;
} }
@ -24,9 +26,13 @@ type AliasA = impl TraitA<Assoc = u32>;
type AliasB = impl TraitB<Assoc = AliasA>; type AliasB = impl TraitB<Assoc = AliasA>;
fn use_of_a() -> AliasA { 3 } fn use_of_a() -> AliasA {
3
}
fn use_of_b() -> AliasB { 3 } fn use_of_b() -> AliasB {
3
}
extern "C" { extern "C" {
pub fn lint_me() -> <AliasB as TraitB>::Assoc; //~ ERROR: uses type `impl TraitA` pub fn lint_me() -> <AliasB as TraitB>::Assoc; //~ ERROR: uses type `impl TraitA`

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/lint-ctypes-73251.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
pub trait Foo { pub trait Foo {

View file

@ -1,24 +1,15 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/opaque-ty-ffi-unsafe.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe
--> $DIR/opaque-ty-ffi-unsafe.rs:14:17 --> $DIR/opaque-ty-ffi-unsafe.rs:13:17
| |
LL | pub fn a(_: A); LL | pub fn a(_: A);
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/opaque-ty-ffi-unsafe.rs:5:9 --> $DIR/opaque-ty-ffi-unsafe.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
= note: opaque types have no C equivalent = note: opaque types have no C equivalent
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,11 +1,11 @@
error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe
--> $DIR/opaque-ty-ffi-unsafe.rs:14:17 --> $DIR/opaque-ty-ffi-unsafe.rs:13:17
| |
LL | pub fn a(_: A); LL | pub fn a(_: A);
| ^ not FFI-safe | ^ not FFI-safe
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/opaque-ty-ffi-unsafe.rs:5:9 --> $DIR/opaque-ty-ffi-unsafe.rs:4:9
| |
LL | #![deny(improper_ctypes)] LL | #![deny(improper_ctypes)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
type A = impl Fn(); type A = impl Fn();
@ -12,7 +11,7 @@ pub fn ret_closure() -> A {
extern "C" { extern "C" {
pub fn a(_: A); pub fn a(_: A);
//~^ ERROR `extern` block uses type `impl Fn<()>`, which is not FFI-safe //~^ ERROR `extern` block uses type `impl Fn<()>`, which is not FFI-safe
} }
fn main() {} fn main() {}

View file

@ -1,17 +1,8 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-75053.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: fatal error triggered by #[rustc_error] error: fatal error triggered by #[rustc_error]
--> $DIR/issue-75053.rs:49:1 --> $DIR/issue-75053.rs:48:1
| |
LL | fn main() { LL | fn main() {
| ^^^^^^^^^ | ^^^^^^^^^
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,5 +1,5 @@
error: fatal error triggered by #[rustc_error] error: fatal error triggered by #[rustc_error]
--> $DIR/issue-75053.rs:49:1 --> $DIR/issue-75053.rs:48:1
| |
LL | fn main() { LL | fn main() {
| ^^^^^^^^^ | ^^^^^^^^^

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait, rustc_attrs)] #![feature(min_type_alias_impl_trait, rustc_attrs)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
use std::marker::PhantomData; use std::marker::PhantomData;

View file

@ -1,14 +1,5 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/private-in-public-assoc-ty.rs:7:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:20:9 --> $DIR/private-in-public-assoc-ty.rs:19:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -17,7 +8,7 @@ LL | type A = Priv;
| ^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^ can't leak private type
warning: private trait `PrivTr` in public interface (error E0445) warning: private trait `PrivTr` in public interface (error E0445)
--> $DIR/private-in-public-assoc-ty.rs:27:9 --> $DIR/private-in-public-assoc-ty.rs:26:9
| |
LL | type Alias1: PrivTr; LL | type Alias1: PrivTr;
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
@ -27,7 +18,7 @@ LL | type Alias1: PrivTr;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
warning: private type `Priv` in public interface (error E0446) warning: private type `Priv` in public interface (error E0446)
--> $DIR/private-in-public-assoc-ty.rs:30:9 --> $DIR/private-in-public-assoc-ty.rs:29:9
| |
LL | type Alias2: PubTrAux1<Priv> = u8; LL | type Alias2: PubTrAux1<Priv> = u8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -36,7 +27,7 @@ LL | type Alias2: PubTrAux1<Priv> = u8;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
warning: private type `Priv` in public interface (error E0446) warning: private type `Priv` in public interface (error E0446)
--> $DIR/private-in-public-assoc-ty.rs:33:9 --> $DIR/private-in-public-assoc-ty.rs:32:9
| |
LL | type Alias3: PubTrAux2<A = Priv> = u8; LL | type Alias3: PubTrAux2<A = Priv> = u8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -45,7 +36,7 @@ LL | type Alias3: PubTrAux2<A = Priv> = u8;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:37:9 --> $DIR/private-in-public-assoc-ty.rs:36:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -54,7 +45,7 @@ LL | type Alias4 = Priv;
| ^^^^^^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^^^^^^ can't leak private type
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:44:9 --> $DIR/private-in-public-assoc-ty.rs:43:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -63,7 +54,7 @@ LL | type Alias1 = Priv;
| ^^^^^^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^^^^^^ can't leak private type
error[E0445]: private trait `PrivTr` in public interface error[E0445]: private trait `PrivTr` in public interface
--> $DIR/private-in-public-assoc-ty.rs:47:9 --> $DIR/private-in-public-assoc-ty.rs:46:9
| |
LL | trait PrivTr {} LL | trait PrivTr {}
| ------------ `PrivTr` declared as private | ------------ `PrivTr` declared as private
@ -71,7 +62,7 @@ LL | trait PrivTr {}
LL | type Exist = impl PrivTr; LL | type Exist = impl PrivTr;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak private trait | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak private trait
error: aborting due to 4 previous errors; 4 warnings emitted error: aborting due to 4 previous errors; 3 warnings emitted
Some errors have detailed explanations: E0445, E0446. Some errors have detailed explanations: E0445, E0446.
For more information about an error, try `rustc --explain E0445`. For more information about an error, try `rustc --explain E0445`.

View file

@ -1,5 +1,5 @@
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:20:9 --> $DIR/private-in-public-assoc-ty.rs:19:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -8,7 +8,7 @@ LL | type A = Priv;
| ^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^ can't leak private type
warning: private trait `PrivTr` in public interface (error E0445) warning: private trait `PrivTr` in public interface (error E0445)
--> $DIR/private-in-public-assoc-ty.rs:27:9 --> $DIR/private-in-public-assoc-ty.rs:26:9
| |
LL | type Alias1: PrivTr; LL | type Alias1: PrivTr;
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
@ -18,7 +18,7 @@ LL | type Alias1: PrivTr;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
warning: private type `Priv` in public interface (error E0446) warning: private type `Priv` in public interface (error E0446)
--> $DIR/private-in-public-assoc-ty.rs:30:9 --> $DIR/private-in-public-assoc-ty.rs:29:9
| |
LL | type Alias2: PubTrAux1<Priv> = u8; LL | type Alias2: PubTrAux1<Priv> = u8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -27,7 +27,7 @@ LL | type Alias2: PubTrAux1<Priv> = u8;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
warning: private type `Priv` in public interface (error E0446) warning: private type `Priv` in public interface (error E0446)
--> $DIR/private-in-public-assoc-ty.rs:33:9 --> $DIR/private-in-public-assoc-ty.rs:32:9
| |
LL | type Alias3: PubTrAux2<A = Priv> = u8; LL | type Alias3: PubTrAux2<A = Priv> = u8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -36,7 +36,7 @@ LL | type Alias3: PubTrAux2<A = Priv> = u8;
= note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:37:9 --> $DIR/private-in-public-assoc-ty.rs:36:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -45,7 +45,7 @@ LL | type Alias4 = Priv;
| ^^^^^^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^^^^^^ can't leak private type
error[E0446]: private type `Priv` in public interface error[E0446]: private type `Priv` in public interface
--> $DIR/private-in-public-assoc-ty.rs:44:9 --> $DIR/private-in-public-assoc-ty.rs:43:9
| |
LL | struct Priv; LL | struct Priv;
| ------------ `Priv` declared as private | ------------ `Priv` declared as private
@ -54,7 +54,7 @@ LL | type Alias1 = Priv;
| ^^^^^^^^^^^^^^^^^^^ can't leak private type | ^^^^^^^^^^^^^^^^^^^ can't leak private type
error[E0445]: private trait `PrivTr` in public interface error[E0445]: private trait `PrivTr` in public interface
--> $DIR/private-in-public-assoc-ty.rs:47:9 --> $DIR/private-in-public-assoc-ty.rs:46:9
| |
LL | trait PrivTr {} LL | trait PrivTr {}
| ------------ `PrivTr` declared as private | ------------ `PrivTr` declared as private

View file

@ -5,7 +5,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
mod m { mod m {
struct Priv; struct Priv;

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/private-in-public-type-alias-impl-trait.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![deny(private_in_public)] #![deny(private_in_public)]
pub type Pub = impl Default; pub type Pub = impl Default;
@ -22,7 +21,9 @@ pub trait Trait {
impl Trait for u8 { impl Trait for u8 {
type Pub = impl Default; type Pub = impl Default;
fn method() -> Self::Pub { Priv } fn method() -> Self::Pub {
Priv
}
} }
fn main() {} fn main() {}

View file

@ -1,17 +1,8 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-68621.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: could not find defining uses error: could not find defining uses
--> $DIR/issue-68621.rs:17:19 --> $DIR/issue-68621.rs:16:19
| |
LL | type Future = impl Trait; LL | type Future = impl Trait;
| ^^^^^^^^^^ | ^^^^^^^^^^
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error

View file

@ -1,5 +1,5 @@
error: could not find defining uses error: could not find defining uses
--> $DIR/issue-68621.rs:17:19 --> $DIR/issue-68621.rs:16:19
| |
LL | type Future = impl Trait; LL | type Future = impl Trait;
| ^^^^^^^^^^ | ^^^^^^^^^^

View file

@ -3,7 +3,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait Trait {} trait Trait {}

View file

@ -1,19 +1,11 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/assoc-type-const.rs:7:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/assoc-type-const.rs:9:12 --> $DIR/assoc-type-const.rs:8:12
| |
LL | #![feature(const_generics)] LL | #![feature(const_generics)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information
warning: 2 warnings emitted warning: 1 warning emitted

View file

@ -1,5 +1,5 @@
warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/assoc-type-const.rs:9:12 --> $DIR/assoc-type-const.rs:8:12
| |
LL | #![feature(const_generics)] LL | #![feature(const_generics)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^

View file

@ -5,7 +5,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
#![feature(const_generics)] #![feature(const_generics)]
//~^ WARN the feature `const_generics` is incomplete //~^ WARN the feature `const_generics` is incomplete

View file

@ -1,18 +1,9 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/assoc-type-lifetime-unconstrained.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
--> $DIR/assoc-type-lifetime-unconstrained.rs:20:6 --> $DIR/assoc-type-lifetime-unconstrained.rs:19:6
| |
LL | impl<'a, I> UnwrapItemsExt for I { LL | impl<'a, I> UnwrapItemsExt for I {
| ^^ unconstrained lifetime parameter | ^^ unconstrained lifetime parameter
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error
For more information about this error, try `rustc --explain E0207`. For more information about this error, try `rustc --explain E0207`.

View file

@ -1,5 +1,5 @@
error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
--> $DIR/assoc-type-lifetime-unconstrained.rs:20:6 --> $DIR/assoc-type-lifetime-unconstrained.rs:19:6
| |
LL | impl<'a, I> UnwrapItemsExt for I { LL | impl<'a, I> UnwrapItemsExt for I {
| ^^ unconstrained lifetime parameter | ^^ unconstrained lifetime parameter

View file

@ -4,7 +4,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait UnwrapItemsExt { trait UnwrapItemsExt {
type Iter; type Iter;

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/assoc-type-lifetime.rs:7:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -5,7 +5,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
trait UnwrapItemsExt<'a> { trait UnwrapItemsExt<'a> {
type Iter; type Iter;

View file

@ -1,11 +0,0 @@
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/associated-type-alias-impl-trait.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: 1 warning emitted

View file

@ -1,7 +1,6 @@
// revisions: min_tait full_tait // revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))] #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
// build-pass (FIXME(62277): could be check-pass?) // build-pass (FIXME(62277): could be check-pass?)
trait Bar {} trait Bar {}

Some files were not shown because too many files have changed in this diff Show more