error[E0308]: mismatched types --> $DIR/issue-42764.rs:11:43 | LL | this_function_expects_a_double_option(n); | ------------------------------------- ^ expected `DoubleOption<_>`, found `usize` | | | arguments to this function are incorrect | = note: expected enum `DoubleOption<_>` found type `usize` note: function defined here --> $DIR/issue-42764.rs:7:4 | LL | fn this_function_expects_a_double_option(d: DoubleOption) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------------------ help: try wrapping the expression in a variant of `DoubleOption` | LL | this_function_expects_a_double_option(DoubleOption::FirstSome(n)); | ++++++++++++++++++++++++ + LL | this_function_expects_a_double_option(DoubleOption::AlternativeSome(n)); | ++++++++++++++++++++++++++++++ + error[E0308]: mismatched types --> $DIR/issue-42764.rs:27:33 | LL | let _c = Context { wrapper: Payload{} }; | ^^^^^^^^^ expected `Wrapper`, found `Payload` | help: try wrapping the expression in `Wrapper` | LL | let _c = Context { wrapper: Wrapper { payload: Payload{} } }; | ++++++++++++++++++ + error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.