add testcase for #104012
This commit is contained in:
parent
1f72129ffe
commit
c4d00d710c
14 changed files with 216 additions and 0 deletions
25
tests/ui/parser/deli-ident-issue-1.rs
Normal file
25
tests/ui/parser/deli-ident-issue-1.rs
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// error-pattern: this file contains an unclosed delimiter
|
||||||
|
#![feature(let_chains)]
|
||||||
|
trait Demo {}
|
||||||
|
|
||||||
|
impl dyn Demo {
|
||||||
|
pub fn report(&self) -> u32 {
|
||||||
|
let sum = |a: u32,
|
||||||
|
b: u32,
|
||||||
|
c: u32| {
|
||||||
|
a + b + c
|
||||||
|
};
|
||||||
|
sum(1, 2, 3)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn check(&self, val: Option<u32>, num: Option<u32>) {
|
||||||
|
if let Some(b) = val
|
||||||
|
&& let Some(c) = num {
|
||||||
|
&& b == c {
|
||||||
|
//~^ ERROR expected struct
|
||||||
|
//~| ERROR mismatched types
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() { } //~ ERROR this file contains an unclosed delimiter
|
37
tests/ui/parser/deli-ident-issue-1.stderr
Normal file
37
tests/ui/parser/deli-ident-issue-1.stderr
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
error: this file contains an unclosed delimiter
|
||||||
|
--> $DIR/deli-ident-issue-1.rs:25:66
|
||||||
|
|
|
||||||
|
LL | impl dyn Demo {
|
||||||
|
| - unclosed delimiter
|
||||||
|
...
|
||||||
|
LL | c: u32| {
|
||||||
|
| - this delimiter might not be properly closed...
|
||||||
|
LL | a + b + c
|
||||||
|
LL | };
|
||||||
|
| - ...as it matches this but it has different indentation
|
||||||
|
...
|
||||||
|
LL | fn main() { }
|
||||||
|
| ^
|
||||||
|
|
||||||
|
error[E0574]: expected struct, variant or union type, found local variable `c`
|
||||||
|
--> $DIR/deli-ident-issue-1.rs:18:17
|
||||||
|
|
|
||||||
|
LL | && b == c {
|
||||||
|
| ^ not a struct, variant or union type
|
||||||
|
|
||||||
|
error[E0308]: mismatched types
|
||||||
|
--> $DIR/deli-ident-issue-1.rs:18:9
|
||||||
|
|
|
||||||
|
LL | fn check(&self, val: Option<u32>, num: Option<u32>) {
|
||||||
|
| - expected `()` because of default return type
|
||||||
|
...
|
||||||
|
LL | / && b == c {
|
||||||
|
LL | |
|
||||||
|
LL | |
|
||||||
|
LL | | }
|
||||||
|
| |_________^ expected `()`, found `bool`
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0308, E0574.
|
||||||
|
For more information about an error, try `rustc --explain E0308`.
|
7
tests/ui/parser/deli-ident-issue-2.rs
Normal file
7
tests/ui/parser/deli-ident-issue-2.rs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
fn main() {
|
||||||
|
if 1 < 2 {
|
||||||
|
let _a = vec!]; //~ ERROR mismatched closing delimiter
|
||||||
|
}
|
||||||
|
} //~ ERROR unexpected closing delimiter
|
||||||
|
|
||||||
|
fn main() {}
|
21
tests/ui/parser/deli-ident-issue-2.stderr
Normal file
21
tests/ui/parser/deli-ident-issue-2.stderr
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
error: unexpected closing delimiter: `}`
|
||||||
|
--> $DIR/deli-ident-issue-2.rs:5:1
|
||||||
|
|
|
||||||
|
LL | fn main() {
|
||||||
|
| - this opening brace...
|
||||||
|
...
|
||||||
|
LL | }
|
||||||
|
| - ...matches this closing brace
|
||||||
|
LL | }
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: mismatched closing delimiter: `]`
|
||||||
|
--> $DIR/deli-ident-issue-2.rs:2:14
|
||||||
|
|
|
||||||
|
LL | if 1 < 2 {
|
||||||
|
| ^ unclosed delimiter
|
||||||
|
LL | let _a = vec!];
|
||||||
|
| ^ mismatched closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
12
tests/ui/parser/issue-68987-unmatch-issue-1.rs
Normal file
12
tests/ui/parser/issue-68987-unmatch-issue-1.rs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
// This file has unexpected closing delimiter,
|
||||||
|
|
||||||
|
fn func(o: Option<u32>) {
|
||||||
|
match o {
|
||||||
|
Some(_x) => {} // Extra '}'
|
||||||
|
let _ = if true {};
|
||||||
|
}
|
||||||
|
None => {}
|
||||||
|
}
|
||||||
|
} //~ ERROR unexpected closing delimiter
|
||||||
|
|
||||||
|
fn main() {}
|
11
tests/ui/parser/issue-68987-unmatch-issue-1.stderr
Normal file
11
tests/ui/parser/issue-68987-unmatch-issue-1.stderr
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
error: unexpected closing delimiter: `}`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue-1.rs:10:1
|
||||||
|
|
|
||||||
|
LL | None => {}
|
||||||
|
| -- block is empty, you might have not meant to close it
|
||||||
|
LL | }
|
||||||
|
LL | }
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
14
tests/ui/parser/issue-68987-unmatch-issue-2.rs
Normal file
14
tests/ui/parser/issue-68987-unmatch-issue-2.rs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
// FIXME: this case need more work to fix
|
||||||
|
// currently the TokenTree matching ')' with '{', which is not user friendly for diagnostics
|
||||||
|
async fn obstest() -> Result<> {
|
||||||
|
let obs_connect = || -> Result<(), MyError) { //~ ERROR mismatched closing delimiter
|
||||||
|
async {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Ok(version, scene_list) = obs_connect() {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
} //~ ERROR unexpected closing delimiter
|
21
tests/ui/parser/issue-68987-unmatch-issue-2.stderr
Normal file
21
tests/ui/parser/issue-68987-unmatch-issue-2.stderr
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
error: unexpected closing delimiter: `}`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue-2.rs:14:1
|
||||||
|
|
|
||||||
|
LL | } else {
|
||||||
|
| - this opening brace...
|
||||||
|
LL |
|
||||||
|
LL | }
|
||||||
|
| - ...matches this closing brace
|
||||||
|
LL | }
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: mismatched closing delimiter: `)`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue-2.rs:3:32
|
||||||
|
|
|
||||||
|
LL | async fn obstest() -> Result<> {
|
||||||
|
| ^ unclosed delimiter
|
||||||
|
LL | let obs_connect = || -> Result<(), MyError) {
|
||||||
|
| ^ mismatched closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
8
tests/ui/parser/issue-68987-unmatch-issue-3.rs
Normal file
8
tests/ui/parser/issue-68987-unmatch-issue-3.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
// the `{` is closed with `)`, there is a missing `(`
|
||||||
|
fn f(i: u32, j: u32) {
|
||||||
|
let res = String::new();
|
||||||
|
let mut cnt = i;
|
||||||
|
while cnt < j {
|
||||||
|
write!&mut res, " "); //~ ERROR mismatched closing delimiter
|
||||||
|
}
|
||||||
|
} //~ ERROR unexpected closing delimiter
|
21
tests/ui/parser/issue-68987-unmatch-issue-3.stderr
Normal file
21
tests/ui/parser/issue-68987-unmatch-issue-3.stderr
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
error: unexpected closing delimiter: `}`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue-3.rs:8:1
|
||||||
|
|
|
||||||
|
LL | fn f(i: u32, j: u32) {
|
||||||
|
| - this opening brace...
|
||||||
|
...
|
||||||
|
LL | }
|
||||||
|
| - ...matches this closing brace
|
||||||
|
LL | }
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: mismatched closing delimiter: `)`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue-3.rs:5:19
|
||||||
|
|
|
||||||
|
LL | while cnt < j {
|
||||||
|
| ^ unclosed delimiter
|
||||||
|
LL | write!&mut res, " ");
|
||||||
|
| ^ mismatched closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
12
tests/ui/parser/issue-68987-unmatch-issue.rs
Normal file
12
tests/ui/parser/issue-68987-unmatch-issue.rs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
// This file has unexpected closing delimiter,
|
||||||
|
|
||||||
|
fn func(o: Option<u32>) {
|
||||||
|
match o {
|
||||||
|
Some(_x) => // Missing '{'
|
||||||
|
let _ = if true {};
|
||||||
|
}
|
||||||
|
None => {}
|
||||||
|
}
|
||||||
|
} //~ ERROR unexpected closing delimiter
|
||||||
|
|
||||||
|
fn main() {}
|
11
tests/ui/parser/issue-68987-unmatch-issue.stderr
Normal file
11
tests/ui/parser/issue-68987-unmatch-issue.stderr
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
error: unexpected closing delimiter: `}`
|
||||||
|
--> $DIR/issue-68987-unmatch-issue.rs:10:1
|
||||||
|
|
|
||||||
|
LL | None => {}
|
||||||
|
| -- block is empty, you might have not meant to close it
|
||||||
|
LL | }
|
||||||
|
LL | }
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
3
tests/ui/parser/issues/issue-69259.rs
Normal file
3
tests/ui/parser/issues/issue-69259.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {}
|
||||||
|
|
||||||
|
fn f) {} //~ ERROR unexpected closing delimiter
|
13
tests/ui/parser/issues/issue-69259.stderr
Normal file
13
tests/ui/parser/issues/issue-69259.stderr
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
error: unexpected closing delimiter: `)`
|
||||||
|
--> $DIR/issue-69259.rs:3:5
|
||||||
|
|
|
||||||
|
LL | fn main() {}
|
||||||
|
| -- ...matches this closing brace
|
||||||
|
| |
|
||||||
|
| this opening brace...
|
||||||
|
LL |
|
||||||
|
LL | fn f) {}
|
||||||
|
| ^ unexpected closing delimiter
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue