error[E0308]: mismatched types
  --> $DIR/issue-35241.rs:3:20
   |
LL | struct Foo(u32);
   | ---------------- fn(u32) -> Foo {Foo} defined here
LL | 
LL | fn test() -> Foo { Foo }
   |              ---   ^^^ expected struct `Foo`, found fn item
   |              |
   |              expected `Foo` because of return type
   |
   = note: expected struct `Foo`
             found fn item `fn(u32) -> Foo {Foo}`
help: use parentheses to instantiate this tuple struct
   |
LL | fn test() -> Foo { Foo(_) }
   |                       ^^^

error: aborting due to previous error

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