1 error[E0308]: mismatched types
2 --> $DIR/issue-81943.rs:7:9
4 LL | f(|x| lib::d!(x));
5 | ^^^^^^^^^^ expected `()`, found `i32`
7 = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
9 error[E0308]: mismatched types
10 --> $DIR/issue-81943.rs:8:28
12 LL | f(|x| match x { tmp => { g(tmp) } });
13 | -------------------^^^^^^----
15 | | expected `()`, found `i32`
16 | expected this to be `()`
18 help: consider using a semicolon here
20 LL | f(|x| match x { tmp => { g(tmp); } });
22 help: consider using a semicolon here
24 LL | f(|x| match x { tmp => { g(tmp) } };);
27 error[E0308]: mismatched types
28 --> $DIR/issue-81943.rs:10:38
30 LL | ($e:expr) => { match $e { x => { g(x) } } }
31 | ------------------^^^^----
33 | | expected `()`, found `i32`
34 | expected this to be `()`
37 | ----- in this macro invocation
39 = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
40 help: consider using a semicolon here
42 LL | ($e:expr) => { match $e { x => { g(x); } } }
44 help: consider using a semicolon here
46 LL | ($e:expr) => { match $e { x => { g(x) } }; }
49 error: aborting due to 3 previous errors
51 For more information about this error, try `rustc --explain E0308`.