error[E0308]: mismatched types --> $DIR/issue-112007-leaked-writeln-macro-internals.rs:9:9 | LL | / if true { LL | | writeln!(w, "`;?` here ->")?; LL | | } else { LL | | writeln!(w, "but not here") | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<(), Error>` LL | | LL | | } | |_____- expected this to be `()` | = note: expected unit type `()` found enum `Result<(), std::fmt::Error>` = note: this error originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider using a semicolon here | LL | }; | + help: you might have meant to return this value | LL | return writeln!(w, "but not here"); | ++++++ + error[E0308]: mismatched types --> $DIR/issue-112007-leaked-writeln-macro-internals.rs:32:9 | LL | / if true { LL | | writeln!(w, "`;?` here ->")?; LL | | } else { LL | | baz!(w) | | ^^^^^^^ expected `()`, found `Result<(), Error>` LL | | } | |_____- expected this to be `()` | = note: expected unit type `()` found enum `Result<(), std::fmt::Error>` = note: this error originates in the macro `writeln` which comes from the expansion of the macro `baz` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider using a semicolon here | LL | }; | + help: you might have meant to return this value | LL | return baz!(w); | ++++++ + error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.