warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
  --> $DIR/duplicate.rs:6:12
   |
LL | #![feature(impl_trait_in_bindings)]
   |            ^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(incomplete_features)]` on by default
   = note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:11:36
   |
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:13:36
   |
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:15:39
   |
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
   |                        -------------  ^^^^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:17:45
   |
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
   |                                 ----------  ^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:19:45
   |
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
   |                                 ----------  ^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:21:48
   |
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:24:34
   |
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
   |                      ----------  ^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:26:34
   |
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
   |                      ----------  ^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:28:37
   |
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
   |                      -------------  ^^^^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:30:43
   |
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:32:43
   |
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:34:46
   |
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
   |                               -------------  ^^^^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:37:35
   |
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
   |                       ----------  ^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:39:35
   |
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
   |                       ----------  ^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:41:38
   |
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
   |                       -------------  ^^^^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:43:44
   |
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
   |                                ----------  ^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:45:44
   |
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
   |                                ----------  ^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:47:47
   |
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
   |                                -------------  ^^^^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:50:32
   |
LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
   |                    ----------  ^^^^^^^^^^ re-bound here
   |                    |
   |                    `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:52:32
   |
LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
   |                    ----------  ^^^^^^^^^^ re-bound here
   |                    |
   |                    `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:54:35
   |
LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
   |                    -------------  ^^^^^^^^^^^^^ re-bound here
   |                    |
   |                    `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:56:43
   |
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:58:43
   |
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:60:46
   |
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
   |                               -------------  ^^^^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:66:40
   |
LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:68:40
   |
LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:70:43
   |
LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
   |                            -------------  ^^^^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:73:39
   |
LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
   |                           ----------  ^^^^^^^^^^ re-bound here
   |                           |
   |                           `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:75:39
   |
LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
   |                           ----------  ^^^^^^^^^^ re-bound here
   |                           |
   |                           `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:77:42
   |
LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
   |                           -------------  ^^^^^^^^^^^^^ re-bound here
   |                           |
   |                           `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:79:40
   |
LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:81:40
   |
LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:83:43
   |
LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
   |                            -------------  ^^^^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:86:46
   |
LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); }
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:88:46
   |
LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); }
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:90:49
   |
LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); }
   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:93:35
   |
LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
   |                       ----------  ^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:95:35
   |
LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
   |                       ----------  ^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:97:38
   |
LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
   |                       -------------  ^^^^^^^^^^^^^ re-bound here
   |                       |
   |                       `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:99:44
   |
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
   |                                ----------  ^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:101:44
   |
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
   |                                ----------  ^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:103:47
   |
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
   |                                -------------  ^^^^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:106:36
   |
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:108:36
   |
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:110:39
   |
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
   |                        -------------  ^^^^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:112:40
   |
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:114:40
   |
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:116:43
   |
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
   |                            -------------  ^^^^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:119:36
   |
LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:121:36
   |
LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
   |                        ----------  ^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:123:39
   |
LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
   |                        -------------  ^^^^^^^^^^^^^ re-bound here
   |                        |
   |                        `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:125:34
   |
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
   |                      ----------  ^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:127:34
   |
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
   |                      ----------  ^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:129:37
   |
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
   |                      -------------  ^^^^^^^^^^^^^ re-bound here
   |                      |
   |                      `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:131:45
   |
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
   |                                 ----------  ^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:133:45
   |
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
   |                                 ----------  ^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:135:48
   |
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
   |                                 |
   |                                 `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:137:46
   |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:137:46
   |
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:140:46
   |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:140:46
   |
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
   |                                  ----------  ^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:143:49
   |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:143:49
   |
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
   |                                  |
   |                                  `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:153:40
   |
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
   |                            ----------  ^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:155:44
   |
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
   |                                ----------  ^^^^^^^^^^ re-bound here
   |                                |
   |                                `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:157:43
   |
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
   |                            -------------  ^^^^^^^^^^^^^ re-bound here
   |                            |
   |                            `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:146:43
   |
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:148:43
   |
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
   |                               ----------  ^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
  --> $DIR/duplicate.rs:150:46
   |
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
   |                               -------------  ^^^^^^^^^^^^^ re-bound here
   |                               |
   |                               `Item` bound here first

error: aborting due to 69 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0719`.
