error[E0412]: cannot find type `NotDefined` in this scope
  --> $DIR/issue-50480.rs:3:12
   |
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
   |            ^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `NotDefined` in this scope
  --> $DIR/issue-50480.rs:3:12
   |
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
   |            ^^^^^^^^^^ not found in this scope

error[E0277]: `i32` is not an iterator
  --> $DIR/issue-50480.rs:3:24
   |
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
   |                        ^^^^^^^^^^^^^^^^^^^^^^^ `i32` is not an iterator
   |
   = help: the trait `Iterator` is not implemented for `i32`
   = note: if you want to iterate between `start` until a value `end`, use the exclusive range syntax `start..end` or the inclusive range syntax `start..=end`

error[E0204]: the trait `Copy` may not be implemented for this type
  --> $DIR/issue-50480.rs:1:17
   |
LL | #[derive(Clone, Copy)]
   |                 ^^^^
LL |
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
   |                                                 --------  ------ this field does not implement `Copy`
   |                                                 |
   |                                                 this field does not implement `Copy`
   |
   = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0204, E0277, E0412.
For more information about an error, try `rustc --explain E0204`.
