error[E0423]: expected value, found enum `n::Z`
  --> $DIR/privacy-enum-ctor.rs:23:9
   |
LL |         n::Z;
   |         ^^^^
help: try using one of the enum's variants
   |
LL |         m::Z::Fn;
   |         ^^^^^^^^
LL |         m::Z::Struct;
   |         ^^^^^^^^^^^^
LL |         m::Z::Unit;
   |         ^^^^^^^^^^

error[E0423]: expected value, found enum `Z`
  --> $DIR/privacy-enum-ctor.rs:25:9
   |
LL |         Z;
   |         ^
help: a function with a similar name exists
   |
LL |         f;
   |         ^
help: try using one of the enum's variants
   |
LL |         m::Z::Fn;
   |         ^^^^^^^^
LL |         m::Z::Struct;
   |         ^^^^^^^^^^^^
LL |         m::Z::Unit;
   |         ^^^^^^^^^^

error[E0423]: expected value, found struct variant `Z::Struct`
  --> $DIR/privacy-enum-ctor.rs:29:20
   |
LL |         let _: Z = Z::Struct;
   |                    ^^^^^^^^^ did you mean `Z::Struct { /* fields */ }`?

error[E0423]: expected value, found enum `m::E`
  --> $DIR/privacy-enum-ctor.rs:41:16
   |
LL |     let _: E = m::E;
   |                ^^^^
help: a function with a similar name exists
   |
LL |     let _: E = m::f;
   |                   ^
help: try using one of the enum's variants
   |
LL |     let _: E = E::Fn;
   |                ^^^^^
LL |     let _: E = E::Struct;
   |                ^^^^^^^^^
LL |     let _: E = E::Unit;
   |                ^^^^^^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use std::f32::consts::E;
   |
LL | use std::f64::consts::E;
   |

error[E0423]: expected value, found struct variant `m::E::Struct`
  --> $DIR/privacy-enum-ctor.rs:45:16
   |
LL |     let _: E = m::E::Struct;
   |                ^^^^^^^^^^^^ did you mean `m::E::Struct { /* fields */ }`?

error[E0423]: expected value, found enum `E`
  --> $DIR/privacy-enum-ctor.rs:49:16
   |
LL |     let _: E = E;
   |                ^
help: try using one of the enum's variants
   |
LL |     let _: E = E::Fn;
   |                ^^^^^
LL |     let _: E = E::Struct;
   |                ^^^^^^^^^
LL |     let _: E = E::Unit;
   |                ^^^^^^^
help: possible better candidates are found in other modules, you can import them into scope
   |
LL | use std::f32::consts::E;
   |
LL | use std::f64::consts::E;
   |

error[E0423]: expected value, found struct variant `E::Struct`
  --> $DIR/privacy-enum-ctor.rs:53:16
   |
LL |     let _: E = E::Struct;
   |                ^^^^^^^^^ did you mean `E::Struct { /* fields */ }`?

error[E0412]: cannot find type `Z` in this scope
  --> $DIR/privacy-enum-ctor.rs:57:12
   |
LL |     let _: Z = m::n::Z;
   |            ^
help: an enum with a similar name exists
   |
LL |     let _: E = m::n::Z;
   |            ^
help: possible candidate is found in another module, you can import it into scope
   |
LL | use m::n::Z;
   |

error[E0423]: expected value, found enum `m::n::Z`
  --> $DIR/privacy-enum-ctor.rs:57:16
   |
LL |     let _: Z = m::n::Z;
   |                ^^^^^^^
help: try using one of the enum's variants
   |
LL |     let _: Z = m::Z::Fn;
   |                ^^^^^^^^
LL |     let _: Z = m::Z::Struct;
   |                ^^^^^^^^^^^^
LL |     let _: Z = m::Z::Unit;
   |                ^^^^^^^^^^

error[E0412]: cannot find type `Z` in this scope
  --> $DIR/privacy-enum-ctor.rs:61:12
   |
LL |     let _: Z = m::n::Z::Fn;
   |            ^
help: an enum with a similar name exists
   |
LL |     let _: E = m::n::Z::Fn;
   |            ^
help: possible candidate is found in another module, you can import it into scope
   |
LL | use m::n::Z;
   |

error[E0412]: cannot find type `Z` in this scope
  --> $DIR/privacy-enum-ctor.rs:64:12
   |
LL |     let _: Z = m::n::Z::Struct;
   |            ^
help: an enum with a similar name exists
   |
LL |     let _: E = m::n::Z::Struct;
   |            ^
help: possible candidate is found in another module, you can import it into scope
   |
LL | use m::n::Z;
   |

error[E0423]: expected value, found struct variant `m::n::Z::Struct`
  --> $DIR/privacy-enum-ctor.rs:64:16
   |
LL |     let _: Z = m::n::Z::Struct;
   |                ^^^^^^^^^^^^^^^ did you mean `m::n::Z::Struct { /* fields */ }`?

error[E0412]: cannot find type `Z` in this scope
  --> $DIR/privacy-enum-ctor.rs:68:12
   |
LL |     let _: Z = m::n::Z::Unit {};
   |            ^
help: an enum with a similar name exists
   |
LL |     let _: E = m::n::Z::Unit {};
   |            ^
help: possible candidate is found in another module, you can import it into scope
   |
LL | use m::n::Z;
   |

error[E0603]: enum `Z` is private
  --> $DIR/privacy-enum-ctor.rs:57:22
   |
LL |     let _: Z = m::n::Z;
   |                      ^

error[E0603]: enum `Z` is private
  --> $DIR/privacy-enum-ctor.rs:61:22
   |
LL |     let _: Z = m::n::Z::Fn;
   |                      ^

error[E0603]: enum `Z` is private
  --> $DIR/privacy-enum-ctor.rs:64:22
   |
LL |     let _: Z = m::n::Z::Struct;
   |                      ^

error[E0603]: enum `Z` is private
  --> $DIR/privacy-enum-ctor.rs:68:22
   |
LL |     let _: Z = m::n::Z::Unit {};
   |                      ^

error[E0308]: mismatched types
  --> $DIR/privacy-enum-ctor.rs:27:20
   |
LL |         let _: Z = Z::Fn;
   |                    ^^^^^ expected enum `m::n::Z`, found fn item
   |
   = note: expected type `m::n::Z`
              found type `fn(u8) -> m::n::Z {m::n::Z::Fn}`

error[E0618]: expected function, found enum variant `Z::Unit`
  --> $DIR/privacy-enum-ctor.rs:31:17
   |
LL |             Unit,
   |             ---- `Z::Unit` defined here
...
LL |         let _ = Z::Unit();
   |                 ^^^^^^^--
   |                 |
   |                 call expression requires function
help: `Z::Unit` is a unit variant, you need to write it without the parenthesis
   |
LL |         let _ = Z::Unit;
   |                 ^^^^^^^

error[E0308]: mismatched types
  --> $DIR/privacy-enum-ctor.rs:43:16
   |
LL |     let _: E = m::E::Fn;
   |                ^^^^^^^^ expected enum `m::E`, found fn item
   |
   = note: expected type `m::E`
              found type `fn(u8) -> m::E {m::E::Fn}`

error[E0618]: expected function, found enum variant `m::E::Unit`
  --> $DIR/privacy-enum-ctor.rs:47:16
   |
LL |         Unit,
   |         ---- `m::E::Unit` defined here
...
LL |     let _: E = m::E::Unit();
   |                ^^^^^^^^^^--
   |                |
   |                call expression requires function
help: `m::E::Unit` is a unit variant, you need to write it without the parenthesis
   |
LL |     let _: E = m::E::Unit;
   |                ^^^^^^^^^^

error[E0308]: mismatched types
  --> $DIR/privacy-enum-ctor.rs:51:16
   |
LL |     let _: E = E::Fn;
   |                ^^^^^ expected enum `m::E`, found fn item
   |
   = note: expected type `m::E`
              found type `fn(u8) -> m::E {m::E::Fn}`

error[E0618]: expected function, found enum variant `E::Unit`
  --> $DIR/privacy-enum-ctor.rs:55:16
   |
LL |         Unit,
   |         ---- `E::Unit` defined here
...
LL |     let _: E = E::Unit();
   |                ^^^^^^^--
   |                |
   |                call expression requires function
help: `E::Unit` is a unit variant, you need to write it without the parenthesis
   |
LL |     let _: E = E::Unit;
   |                ^^^^^^^

error: aborting due to 23 previous errors

Some errors occurred: E0308, E0412, E0423, E0603, E0618.
For more information about an error, try `rustc --explain E0308`.
