1 #![allow(unused_assignments)]
2 // expect-exit-status-1
4 fn call(return_error: bool) -> Result<(),()> {
12 fn test1() -> Result<(),()> {
27 call(/*return_error=*/ true)?;
28 call(/*return_error=*/ false)?;
32 call(/*return_error=*/ false)?;
40 fn get_thing_2(&self, return_error: bool) -> Result<Thing2,()> {
51 fn call(&self, return_error: bool) -> Result<u32,()> {
60 fn test2() -> Result<(),()> {
61 let thing1 = Thing1{};
76 thing1.get_thing_2(/*err=*/ false)?.call(/*err=*/ true).expect_err("call should fail");
79 get_thing_2(/*return_error=*/ false)
82 call(/*return_error=*/ true)
87 let val = thing1.get_thing_2(/*return_error=*/ true)?.call(/*return_error=*/ true)?;
89 let val = thing1.get_thing_2(/*return_error=*/ true)?.call(/*return_error=*/ false)?;
94 let val = thing1.get_thing_2(/*return_error=*/ false)?.call(/*return_error=*/ false)?;
97 .get_thing_2(/*return_error=*/ false)?
98 .call(/*return_error=*/ false)?;
101 .get_thing_2(/*return_error=*/ false)
103 .call(/*return_error=*/ false)
112 fn main() -> Result<(),()> {
113 test1().expect_err("test1 should fail");