diff options
Diffstat (limited to 'tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed')
-rw-r--r-- | tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed b/tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed new file mode 100644 index 000000000..29b6b8b86 --- /dev/null +++ b/tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed @@ -0,0 +1,37 @@ +// run-rustfix +#![allow(dead_code)] + +// https://github.com/rust-lang/rust/issues/112007 +fn bug_report<W: std::fmt::Write>(w: &mut W) -> std::fmt::Result { + if true { + writeln!(w, "`;?` here ->")?; + } else { + return writeln!(w, "but not here"); + //~^ ERROR mismatched types + }; + Ok(()) +} + +macro_rules! baz { + ($w: expr) => { + bar!($w) + } +} + +macro_rules! bar { + ($w: expr) => { + writeln!($w, "but not here") + //~^ ERROR mismatched types + } +} + +fn foo<W: std::fmt::Write>(w: &mut W) -> std::fmt::Result { + if true { + writeln!(w, "`;?` here ->")?; + } else { + return baz!(w); + }; + Ok(()) +} + +fn main() {} |