error[E0308]: mismatched types
  --> $DIR/issue-35241.rs:3:20
   |
LL | struct Foo(u32);
   | ---------- `Foo` defines a struct constructor here, which should be called
LL |
LL | fn test() -> Foo { Foo }
   |              ---   ^^^ expected `Foo`, found struct constructor
   |              |
   |              expected `Foo` because of return type
   |
   = note:          expected struct `Foo`
           found struct constructor `fn(u32) -> Foo {Foo}`
help: use parentheses to construct this tuple struct
   |
LL | fn test() -> Foo { Foo(/* u32 */) }
   |                       +++++++++++

error: aborting due to 1 previous error

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