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: consider importing one of these items instead
   |
LL | use m2::S;
   |
LL | use xm2::S;
   |

error[E0423]: expected value, found type alias `xm1::S`
  --> $DIR/namespace-mix.rs:40:11
   |
LL |     check(xm1::S);
   |           ^^^^^^
   | 
  ::: $DIR/auxiliary/namespace-mix.rs:3:5
   |
LL |     pub struct TS();
   |     ---------------- similarly named tuple struct `TS` defined here
   |
   = note: can't use a type alias as a constructor
help: a tuple struct with a similar name exists
   |
LL |     check(xm1::TS);
   |                ^^
help: consider importing one of these items instead
   |
LL | use m2::S;
   |
LL | use 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: consider importing one of these items instead
   |
LL | use m8::V;
   |
LL | use 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 */ }`?
   | 
  ::: $DIR/auxiliary/namespace-mix.rs:7:9
   |
LL |         TV(),
   |         ---- similarly named tuple variant `TV` defined here
   |
help: a tuple variant with a similar name exists
   |
LL |     check(xm7::TV);
   |                ^^
help: consider importing one of these items instead
   |
LL | use m8::V;
   |
LL | use 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`.
