error[E0593]: function is expected to take 1 argument, but it takes 2 arguments --> $DIR/issue-47706.rs:11:18 | LL | pub fn new(foo: Option, _: ()) -> Foo { | ------------------------------------------ takes 2 arguments ... LL | self.foo.map(Foo::new) | ^^^ expected function that takes 1 argument error[E0593]: function is expected to take 0 arguments, but it takes 1 argument --> $DIR/issue-47706.rs:27:5 | LL | Bar(i32), | -------- takes 1 argument ... LL | foo(Qux::Bar); | ^^^ expected function that takes 0 arguments | note: required by `foo` --> $DIR/issue-47706.rs:20:1 | LL | / fn foo(f: F) LL | | where LL | | F: Fn(), LL | | { LL | | } | |_^ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0593`.