File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -374,6 +374,9 @@ pub struct IndentParenExprArgs {
374374}
375375
376376impl 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 ( ) ,
Original file line number Diff line number Diff 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+
93107static FUNCALL_NESTED_PAREN_CORRECT : & str = "
94108method effect() {
95109 callback(another_cb(varname,
You can’t perform that action at this time.
0 commit comments