Skip to content

Commit 78d7ec0

Browse files
committed
Add exception to indent_paren_expr to be handled by LL6 rule
1 parent af10887 commit 78d7ec0

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/lint/rules/indentation.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,9 @@ pub struct IndentParenExprArgs {
374374
}
375375

376376
impl IndentParenExprArgs {
377+
pub fn is_broken_after_lparen(lparen_range: ZeroRange, next_token_range: ZeroRange) -> bool {
378+
lparen_range.row_start != next_token_range.row_start
379+
}
377380
pub fn filter_out_parenthesized_tokens(expression_tokens: TreeElementTokenIterator) -> Vec<Token> {
378381
let mut token_list: Vec<Token> = vec![];
379382
let mut paren_depth = 0;
@@ -429,6 +432,11 @@ impl IndentParenExprArgs {
429432
for (arg, _comma) in node.arguments.iter() {
430433
filtered_member_ranges.extend(Self::filter_out_parenthesized_tokens(arg.tokens()).iter().filter(|t| t.kind != TokenKind::RParen).map(|t| t.range));
431434
}
435+
if filtered_member_ranges.is_empty()
436+
|| Self::is_broken_after_lparen(node.lparen.range(),
437+
filtered_member_ranges.first()?.to_owned()) {
438+
return None
439+
}
432440
Some(IndentParenExprArgs {
433441
members_ranges: filtered_member_ranges,
434442
lparen: node.lparen.range(),

src/lint/rules/tests/indentation/paren_expr.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,20 @@ fn funcall_paren_incorrect() {
9090
assert_snippet(FUNCALL_PAREN_INCORRECT, expected_errors, &rules);
9191
}
9292

93+
static FUNCALL_BROKEN_AFTER_PAREN_EXCEPTION_CORRECT: &str = "
94+
method effect() {
95+
callback(
96+
0xABC,
97+
identifier,
98+
false);
99+
}
100+
";
101+
#[test]
102+
fn funcall_broken_after_paren_exception_correct() {
103+
let rules = set_up();
104+
assert_snippet(FUNCALL_BROKEN_AFTER_PAREN_EXCEPTION_CORRECT, vec![], &rules);
105+
}
106+
93107
static FUNCALL_NESTED_PAREN_CORRECT: &str = "
94108
method effect() {
95109
callback(another_cb(varname,

0 commit comments

Comments
 (0)