@@ -509,6 +509,11 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
509
509
function getChainHeadToken ( node ) {
510
510
const type = node . type
511
511
while ( node . parent . type === type ) {
512
+ const prevToken = tokenStore . getTokenBefore ( node )
513
+ if ( isLeftParen ( prevToken ) ) {
514
+ // The chaining is broken by parentheses.
515
+ break
516
+ }
512
517
node = node . parent
513
518
}
514
519
return tokenStore . getFirstToken ( node )
@@ -537,7 +542,15 @@ module.exports.defineVisitor = function create (context, tokenStore, defaultOpti
537
542
return parent . range [ 0 ] === token . range [ 0 ]
538
543
}
539
544
if ( t === 'VExpressionContainer' ) {
540
- return node . range [ 0 ] === token . range [ 0 ]
545
+ if ( node . range [ 0 ] !== token . range [ 0 ] ) {
546
+ return false
547
+ }
548
+ const prevToken = tokenStore . getTokenBefore ( belongingNode )
549
+ if ( isLeftParen ( prevToken ) ) {
550
+ // It is not the first token because it is enclosed in parentheses.
551
+ return false
552
+ }
553
+ return true
541
554
}
542
555
if ( t === 'CallExpression' || t === 'NewExpression' ) {
543
556
const openParen = tokenStore . getTokenAfter ( parent . callee , isNotRightParen )
0 commit comments