Skip to content

Commit 84364ba

Browse files
committed
Add multi-lined initializer expression test cases
1 parent a4e3c86 commit 84364ba

File tree

6 files changed

+174
-0
lines changed

6 files changed

+174
-0
lines changed

tests/source/configs/single_line_let_else_max_width/100.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,24 @@ fn main() {
1717
let Some(c) = opt else { /* a comment should always force the block to be multi-lined */ return };
1818

1919
let Some(d) = some_very_very_very_very_long_name else { return };
20+
21+
let Expr::Slice(ast::ExprSlice { lower, upper, step, range: _ }) = slice.as_ref() else {
22+
return
23+
};
24+
25+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
26+
return Ok(None)
27+
};
28+
29+
let Some(doc_attr) = variant.attrs.iter().find(|attr| attr.path().is_ident("doc")) else {
30+
return Err(Error::new(variant.span(), r#"expected a doc comment"#))
31+
};
32+
33+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
34+
return Ok(None)
35+
};
36+
37+
let Stmt::Expr(Expr::Call(ExprCall { args: some_args, .. }), _) = last_stmt else {
38+
return Err(Error::new(last_stmt.span(), "expected last expression to be `Some(match (..) { .. })`"))
39+
};
2040
}

tests/source/configs/single_line_let_else_max_width/50.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,24 @@ fn main() {
1717
let Some(c) = opt else { /* a comment should always force the block to be multi-lined */ return };
1818

1919
let Some(d) = some_very_very_very_very_long_name else { return };
20+
21+
let Expr::Slice(ast::ExprSlice { lower, upper, step, range: _ }) = slice.as_ref() else {
22+
return
23+
};
24+
25+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
26+
return Ok(None)
27+
};
28+
29+
let Some(doc_attr) = variant.attrs.iter().find(|attr| attr.path().is_ident("doc")) else {
30+
return Err(Error::new(variant.span(), r#"expected a doc comment"#))
31+
};
32+
33+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
34+
return Ok(None)
35+
};
36+
37+
let Stmt::Expr(Expr::Call(ExprCall { args: some_args, .. }), _) = last_stmt else {
38+
return Err(Error::new(last_stmt.span(), "expected last expression to be `Some(match (..) { .. })`"))
39+
};
2040
}

tests/source/configs/single_line_let_else_max_width/zero.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,24 @@ fn main() {
1717
let Some(c) = opt else { /* a comment should always force the block to be multi-lined */ return };
1818

1919
let Some(d) = some_very_very_very_very_long_name else { return };
20+
21+
let Expr::Slice(ast::ExprSlice { lower, upper, step, range: _ }) = slice.as_ref() else {
22+
return
23+
};
24+
25+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
26+
return Ok(None)
27+
};
28+
29+
let Some(doc_attr) = variant.attrs.iter().find(|attr| attr.path().is_ident("doc")) else {
30+
return Err(Error::new(variant.span(), r#"expected a doc comment"#))
31+
};
32+
33+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
34+
return Ok(None)
35+
};
36+
37+
let Stmt::Expr(Expr::Call(ExprCall { args: some_args, .. }), _) = last_stmt else {
38+
return Err(Error::new(last_stmt.span(), "expected last expression to be `Some(match (..) { .. })`"))
39+
};
2040
}

tests/target/configs/single_line_let_else_max_width/100.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,42 @@ fn main() {
1818
};
1919

2020
let Some(d) = some_very_very_very_very_long_name else { return };
21+
22+
let Expr::Slice(ast::ExprSlice {
23+
lower,
24+
upper,
25+
step,
26+
range: _,
27+
}) = slice.as_ref() else {
28+
return;
29+
};
30+
31+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
32+
return Ok(None);
33+
};
34+
35+
let Some(doc_attr) = variant
36+
.attrs
37+
.iter()
38+
.find(|attr| attr.path().is_ident("doc"))
39+
else {
40+
return Err(Error::new(variant.span(), r#"expected a doc comment"#));
41+
};
42+
43+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
44+
return Ok(None);
45+
};
46+
47+
let Stmt::Expr(
48+
Expr::Call(ExprCall {
49+
args: some_args, ..
50+
}),
51+
_,
52+
) = last_stmt
53+
else {
54+
return Err(Error::new(
55+
last_stmt.span(),
56+
"expected last expression to be `Some(match (..) { .. })`",
57+
));
58+
};
2159
}

tests/target/configs/single_line_let_else_max_width/50.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,42 @@ fn main() {
2020
let Some(d) = some_very_very_very_very_long_name else {
2121
return;
2222
};
23+
24+
let Expr::Slice(ast::ExprSlice {
25+
lower,
26+
upper,
27+
step,
28+
range: _,
29+
}) = slice.as_ref() else {
30+
return;
31+
};
32+
33+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
34+
return Ok(None);
35+
};
36+
37+
let Some(doc_attr) = variant
38+
.attrs
39+
.iter()
40+
.find(|attr| attr.path().is_ident("doc"))
41+
else {
42+
return Err(Error::new(variant.span(), r#"expected a doc comment"#));
43+
};
44+
45+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
46+
return Ok(None);
47+
};
48+
49+
let Stmt::Expr(
50+
Expr::Call(ExprCall {
51+
args: some_args, ..
52+
}),
53+
_,
54+
) = last_stmt
55+
else {
56+
return Err(Error::new(
57+
last_stmt.span(),
58+
"expected last expression to be `Some(match (..) { .. })`",
59+
));
60+
};
2361
}

tests/target/configs/single_line_let_else_max_width/zero.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,42 @@ fn main() {
2424
let Some(d) = some_very_very_very_very_long_name else {
2525
return;
2626
};
27+
28+
let Expr::Slice(ast::ExprSlice {
29+
lower,
30+
upper,
31+
step,
32+
range: _,
33+
}) = slice.as_ref() else {
34+
return;
35+
};
36+
37+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true)? else {
38+
return Ok(None);
39+
};
40+
41+
let Some(doc_attr) = variant
42+
.attrs
43+
.iter()
44+
.find(|attr| attr.path().is_ident("doc"))
45+
else {
46+
return Err(Error::new(variant.span(), r#"expected a doc comment"#));
47+
};
48+
49+
let Some((base_place, current)) = self.lower_expr_as_place(current, *base, true) else {
50+
return Ok(None);
51+
};
52+
53+
let Stmt::Expr(
54+
Expr::Call(ExprCall {
55+
args: some_args, ..
56+
}),
57+
_,
58+
) = last_stmt
59+
else {
60+
return Err(Error::new(
61+
last_stmt.span(),
62+
"expected last expression to be `Some(match (..) { .. })`",
63+
));
64+
};
2765
}

0 commit comments

Comments
 (0)