error[E0061]: this function takes 2 arguments but 1 argument was supplied --> $DIR/issue-18819.rs:16:5 | LL | print_x(X); | ^^^^^^^--- an argument of type `&str` is missing | note: expected `&dyn Foo`, found `X` --> $DIR/issue-18819.rs:16:13 | LL | print_x(X); | ^ = note: expected reference `&dyn Foo` found struct `X` note: function defined here --> $DIR/issue-18819.rs:11:4 | LL | fn print_x(_: &dyn Foo, extra: &str) { | ^^^^^^^ ---------------------- ----------- help: consider borrowing here | LL | print_x(&X); | ~~ help: provide the argument | LL | print_x(/* &dyn Foo */, /* &str */); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: aborting due to previous error For more information about this error, try `rustc --explain E0061`.