error: struct literals are not allowed here
  --> $DIR/E0423.rs:12:32
   |
LL |     if let S { x: _x, y: 2 } = S { x: 1, y: 2 } { println!("Ok"); }
   |                                ^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     if let S { x: _x, y: 2 } = (S { x: 1, y: 2 }) { println!("Ok"); }
   |                                +                +

error: expected expression, found `==`
  --> $DIR/E0423.rs:14:13
   |
LL |     if T {} == T {} { println!("Ok"); }
   |             ^^ expected expression

error: struct literals are not allowed here
  --> $DIR/E0423.rs:20:14
   |
LL |     for _ in std::ops::Range { start: 0, end: 10 } {}
   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     for _ in (std::ops::Range { start: 0, end: 10 }) {}
   |              +                                     +

error[E0423]: expected value, found struct `T`
  --> $DIR/E0423.rs:14:8
   |
LL |     if T {} == T {} { println!("Ok"); }
   |        ^ not a value
   |
help: surround the struct literal with parentheses
   |
LL |     if (T {}) == T {} { println!("Ok"); }
   |        +    +

error[E0423]: expected function, tuple struct or tuple variant, found struct `Foo`
  --> $DIR/E0423.rs:4:13
   |
LL |     struct Foo { a: bool };
   |     ---------------------- `Foo` defined here
LL |
LL |     let f = Foo();
   |             ^^^^^
...
LL | fn foo() {
   | -------- similarly named function `foo` defined here
   |
help: use struct literal syntax instead
   |
LL |     let f = Foo { a: val };
   |             ~~~~~~~~~~~~~~
help: a function with a similar name exists
   |
LL |     let f = foo();
   |             ~~~

error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0423`.
