error[E0423]: expected value, found struct `Empty1`
  --> $DIR/empty-struct-braces-expr.rs:15:14
   |
LL | struct Empty1 {}
   | ---------------- `Empty1` defined here
...
LL |     let e1 = Empty1;
   |              ^^^^^^
   |              |
   |              did you mean `Empty1 { /* fields */ }`?
   |              help: a unit struct with a similar name exists: `XEmpty2`
   | 
  ::: $DIR/auxiliary/empty-struct.rs:2:1
   |
LL | pub struct XEmpty2;
   | ------------------- similarly named unit struct `XEmpty2` defined here

error[E0423]: expected function, tuple struct or tuple variant, found struct `Empty1`
  --> $DIR/empty-struct-braces-expr.rs:16:14
   |
LL | struct Empty1 {}
   | ---------------- `Empty1` defined here
...
LL |     let e1 = Empty1();
   |              ^^^^^^
   |              |
   |              did you mean `Empty1 { /* fields */ }`?
   |              help: a unit struct with a similar name exists: `XEmpty2`
   | 
  ::: $DIR/auxiliary/empty-struct.rs:2:1
   |
LL | pub struct XEmpty2;
   | ------------------- similarly named unit struct `XEmpty2` defined here

error[E0423]: expected value, found struct variant `E::Empty3`
  --> $DIR/empty-struct-braces-expr.rs:18:14
   |
LL |     Empty3 {}
   |     --------- `E::Empty3` defined here
...
LL |     let e3 = E::Empty3;
   |              ^^^^^^^^^ did you mean `E::Empty3 { /* fields */ }`?

error[E0423]: expected function, tuple struct or tuple variant, found struct variant `E::Empty3`
  --> $DIR/empty-struct-braces-expr.rs:19:14
   |
LL |     Empty3 {}
   |     --------- `E::Empty3` defined here
...
LL |     let e3 = E::Empty3();
   |              ^^^^^^^^^ did you mean `E::Empty3 { /* fields */ }`?

error[E0423]: expected value, found struct `XEmpty1`
  --> $DIR/empty-struct-braces-expr.rs:22:15
   |
LL |     let xe1 = XEmpty1;
   |               ^^^^^^^
   |               |
   |               did you mean `XEmpty1 { /* fields */ }`?
   |               help: a unit struct with a similar name exists: `XEmpty2`
   | 
  ::: $DIR/auxiliary/empty-struct.rs:2:1
   |
LL | pub struct XEmpty2;
   | ------------------- similarly named unit struct `XEmpty2` defined here

error[E0423]: expected function, tuple struct or tuple variant, found struct `XEmpty1`
  --> $DIR/empty-struct-braces-expr.rs:23:15
   |
LL |     let xe1 = XEmpty1();
   |               ^^^^^^^
   |               |
   |               did you mean `XEmpty1 { /* fields */ }`?
   |               help: a unit struct with a similar name exists: `XEmpty2`
   | 
  ::: $DIR/auxiliary/empty-struct.rs:2:1
   |
LL | pub struct XEmpty2;
   | ------------------- similarly named unit struct `XEmpty2` defined here

error[E0599]: no variant or associated item named `Empty3` found for enum `empty_struct::XE` in the current scope
  --> $DIR/empty-struct-braces-expr.rs:25:19
   |
LL |     let xe3 = XE::Empty3;
   |                   ^^^^^^
   |                   |
   |                   variant or associated item not found in `empty_struct::XE`
   |                   help: there is a variant with a similar name: `XEmpty3`

error[E0599]: no variant or associated item named `Empty3` found for enum `empty_struct::XE` in the current scope
  --> $DIR/empty-struct-braces-expr.rs:26:19
   |
LL |     let xe3 = XE::Empty3();
   |                   ^^^^^^
   |                   |
   |                   variant or associated item not found in `empty_struct::XE`
   |                   help: there is a variant with a similar name: `XEmpty3`

error[E0599]: no variant named `Empty1` found for enum `empty_struct::XE`
  --> $DIR/empty-struct-braces-expr.rs:28:9
   |
LL |     XE::Empty1 {};
   |         ^^^^^^ help: there is a variant with a similar name: `XEmpty3`

error: aborting due to 9 previous errors

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