summaryrefslogtreecommitdiffstats
path: root/tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.fixed
diff options
context:
space:
mode:
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.fixed37
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() {}