diff --git a/src/test/ui/issue-59756.rs b/src/test/ui/issue-59756.rs new file mode 100644 index 000000000000..2ce969432755 --- /dev/null +++ b/src/test/ui/issue-59756.rs @@ -0,0 +1,15 @@ +#![allow(warnings)] + +struct A; +struct B; + +fn foo() -> Result { + Ok(A) +} + +fn bar() -> Result { + foo()? + //~^ ERROR try expression alternatives have incompatible types [E0308] +} + +fn main() {} diff --git a/src/test/ui/issue-59756.stderr b/src/test/ui/issue-59756.stderr new file mode 100644 index 000000000000..58491cdaa583 --- /dev/null +++ b/src/test/ui/issue-59756.stderr @@ -0,0 +1,12 @@ +error[E0308]: try expression alternatives have incompatible types + --> $DIR/issue-59756.rs:11:5 + | +LL | foo()? + | ^^^^^^ expected enum `std::result::Result`, found struct `A` + | + = note: expected type `std::result::Result` + found type `A` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`.