Skip to content

Commit 9ef67e0

Browse files
committed
Add regression test
1 parent 15fdccc commit 9ef67e0

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// edition:2018
2+
3+
pub struct Test {}
4+
5+
impl Test {
6+
pub async fn answer_str(&self, _s: &str) -> Test {
7+
Test {}
8+
}
9+
}
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// aux-build:issue-81839.rs
2+
// edition:2018
3+
4+
extern crate issue_81839;
5+
6+
async fn test(ans: &str, num: i32, cx: &issue_81839::Test) -> u32 {
7+
match num {
8+
1 => {
9+
cx.answer_str("hi");
10+
}
11+
_ => cx.answer_str("hi"), //~ `match` arms have incompatible types
12+
}
13+
14+
1
15+
}
16+
17+
fn main() {}
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
error[E0308]: `match` arms have incompatible types
2+
--> $DIR/issue-81839.rs:11:14
3+
|
4+
LL | / match num {
5+
LL | | 1 => {
6+
LL | | cx.answer_str("hi");
7+
| | --------------------
8+
| | | |
9+
| | | help: consider removing this semicolon
10+
| | this is found to be of type `()`
11+
LL | | }
12+
LL | | _ => cx.answer_str("hi"),
13+
| | ^^^^^^^^^^^^^^^^^^^ expected `()`, found opaque type
14+
LL | | }
15+
| |_____- `match` arms have incompatible types
16+
|
17+
::: $DIR/auxiliary/issue-81839.rs:6:49
18+
|
19+
LL | pub async fn answer_str(&self, _s: &str) -> Test {
20+
| ---- the `Output` of this `async fn`'s found opaque type
21+
|
22+
= note: expected type `()`
23+
found opaque type `impl Future`
24+
25+
error: aborting due to previous error
26+
27+
For more information about this error, try `rustc --explain E0308`.

0 commit comments

Comments
 (0)