error[E0423]: expected value, found type alias `m1::S`
  --> $DIR/namespace-mix.rs:34:11
   |
LL |     pub struct TS();
   |     ---------------- similarly named tuple struct `TS` defined here
...
LL |     check(m1::S);
   |           ^^^^^
   |
   = note: can't use a type alias as a constructor
help: a tuple struct with a similar name exists
   |
LL |     check(m1::TS);
   |               ^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use m2::S;
   |
LL | use namespace_mix::xm2::S;
   |

error[E0423]: expected value, found type alias `xm1::S`
  --> $DIR/namespace-mix.rs:40:11
   |
LL |     check(xm1::S);
   |           ^^^^^^
   |
   = note: can't use a type alias as a constructor
help: a tuple struct with a similar name exists
   |
LL |     check(xm1::TS);
   |                ^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use m2::S;
   |
LL | use namespace_mix::xm2::S;
   |

error[E0423]: expected value, found struct variant `m7::V`
  --> $DIR/namespace-mix.rs:100:11
   |
LL |         V {},
   |         ---- `m7::V` defined here
LL |         TV(),
   |         ---- similarly named tuple variant `TV` defined here
...
LL |     check(m7::V);
   |           ^^^^^ did you mean `m7::V { /* fields */ }`?
   |
help: a tuple variant with a similar name exists
   |
LL |     check(m7::TV);
   |               ^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use m8::V;
   |
LL | use namespace_mix::xm8::V;
   |

error[E0423]: expected value, found struct variant `xm7::V`
  --> $DIR/namespace-mix.rs:106:11
   |
LL |     check(xm7::V);
   |           ^^^^^^ did you mean `xm7::V { /* fields */ }`?
   |
help: a tuple variant with a similar name exists
   |
LL |     check(xm7::TV);
   |                ^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use m8::V;
   |
LL | use namespace_mix::xm8::V;
   |

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:33:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m1::S{});
   |           ^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `c::S: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:35:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m2::S{});
   |           ^^^^^^^ the trait `Impossible` is not implemented for `c::S`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:36:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m2::S);
   |           ^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:39:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm1::S{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `namespace_mix::c::S: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:41:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm2::S{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::S`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:42:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm2::S);
   |           ^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:55:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m3::TS{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `fn() -> c::TS {c::TS}: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:56:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m3::TS);
   |           ^^^^^^ the trait `Impossible` is not implemented for `fn() -> c::TS {c::TS}`

error[E0277]: the trait bound `c::TS: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:57:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m4::TS{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::TS`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:58:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m4::TS);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:61:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm3::TS{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `fn() -> namespace_mix::c::TS {namespace_mix::c::TS}: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:62:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm3::TS);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `fn() -> namespace_mix::c::TS {namespace_mix::c::TS}`

error[E0277]: the trait bound `namespace_mix::c::TS: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:63:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm4::TS{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::TS`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:64:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm4::TS);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:77:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m5::US{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `c::US: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:78:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m5::US);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::US`

error[E0277]: the trait bound `c::US: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:79:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m6::US{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::US`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:80:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m6::US);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:83:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm5::US{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `namespace_mix::c::US: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:84:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm5::US);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::US`

error[E0277]: the trait bound `namespace_mix::c::US: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:85:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm6::US{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::US`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:86:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm6::US);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:99:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m7::V{});
   |           ^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:101:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m8::V{});
   |           ^^^^^^^ the trait `Impossible` is not implemented for `c::E`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:102:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m8::V);
   |           ^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:105:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm7::V{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:107:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm8::V{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:108:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm8::V);
   |           ^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:121:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m9::TV{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `fn() -> c::E {c::E::TV}: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:122:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(m9::TV);
   |           ^^^^^^ the trait `Impossible` is not implemented for `fn() -> c::E {c::E::TV}`

error[E0277]: the trait bound `c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:123:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mA::TV{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::E`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:124:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mA::TV);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:127:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm9::TV{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `fn() -> namespace_mix::c::E {namespace_mix::xm7::TV}: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:128:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xm9::TV);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `fn() -> namespace_mix::c::E {namespace_mix::xm7::TV}`

error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:129:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmA::TV{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:130:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmA::TV);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:143:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mB::UV{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:144:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mB::UV);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::E`

error[E0277]: the trait bound `c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:145:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mC::UV{});
   |           ^^^^^^^^ the trait `Impossible` is not implemented for `c::E`

error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:146:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(mC::UV);
   |           ^^^^^^ the trait `Impossible` is not implemented for `c::Item`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:149:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmB::UV{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:150:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmB::UV);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`

error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:151:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmC::UV{});
   |           ^^^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`

error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
  --> $DIR/namespace-mix.rs:152:11
   |
LL | fn check<T: Impossible>(_: T) {}
   |    -----    ---------- required by this bound in `check`
...
LL |     check(xmC::UV);
   |           ^^^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`

error: aborting due to 48 previous errors

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