fix: add parenthesis for or-pattern

This commit is contained in:
roife 2024-09-09 03:55:59 +08:00
parent 5caa56e18a
commit 5c97361622
2 changed files with 18 additions and 1 deletions

View file

@ -599,12 +599,14 @@ impl Printer<'_> {
w!(self, ")");
}
Pat::Or(pats) => {
w!(self, "(");
for (i, pat) in pats.iter().enumerate() {
if i != 0 {
w!(self, " | ");
}
self.print_pat(*pat);
}
w!(self, ")");
}
Pat::Record { path, args, ellipsis } => {
match path {

View file

@ -8743,7 +8743,6 @@ fn foo() {
);
}
#[test]
fn test_hover_function_with_pat_param() {
check(
@ -8856,4 +8855,20 @@ fn test_hover_function_with_pat_param() {
```
"#]],
);
// Test case with Enum and Or pattern
check(
r#"enum MyEnum { A(i32), B(i32) } fn test_8$0((MyEnum::A(x) | MyEnum::B(x)): MyEnum) {}"#,
expect![[r#"
*test_8*
```rust
test
```
```rust
fn test_8((MyEnum::A(x) | MyEnum::B(x)): MyEnum)
```
"#]],
);
}