@@ -1851,10 +1851,18 @@ protected function processAdditional()
18511851 T_CLOSE_TAG => true ,
18521852 ];
18531853
1854- $ inTernary = false ;
1854+ $ inTernary = false ;
1855+ $ lastEndToken = null ;
18551856
18561857 for ($ scopeCloser = ($ arrow + 1 ); $ scopeCloser < $ numTokens ; $ scopeCloser ++) {
18571858 if (isset ($ endTokens [$ this ->tokens [$ scopeCloser ]['code ' ]]) === true ) {
1859+ if ($ lastEndToken !== null
1860+ && $ this ->tokens [$ scopeCloser ]['code ' ] === T_CLOSE_PARENTHESIS
1861+ && $ this ->tokens [$ scopeCloser ]['parenthesis_opener ' ] < $ arrow
1862+ ) {
1863+ $ scopeCloser = $ lastEndToken ;
1864+ }
1865+
18581866 break ;
18591867 }
18601868
@@ -1867,12 +1875,14 @@ protected function processAdditional()
18671875 }
18681876
18691877 if (isset ($ this ->tokens [$ scopeCloser ]['parenthesis_closer ' ]) === true ) {
1870- $ scopeCloser = $ this ->tokens [$ scopeCloser ]['parenthesis_closer ' ];
1878+ $ scopeCloser = $ this ->tokens [$ scopeCloser ]['parenthesis_closer ' ];
1879+ $ lastEndToken = $ scopeCloser ;
18711880 continue ;
18721881 }
18731882
18741883 if (isset ($ this ->tokens [$ scopeCloser ]['bracket_closer ' ]) === true ) {
1875- $ scopeCloser = $ this ->tokens [$ scopeCloser ]['bracket_closer ' ];
1884+ $ scopeCloser = $ this ->tokens [$ scopeCloser ]['bracket_closer ' ];
1885+ $ lastEndToken = $ scopeCloser ;
18761886 continue ;
18771887 }
18781888
@@ -1895,6 +1905,10 @@ protected function processAdditional()
18951905 if (PHP_CODESNIFFER_VERBOSITY > 1 ) {
18961906 $ line = $ this ->tokens [$ i ]['line ' ];
18971907 echo "\t=> token $ i on line $ line processed as arrow function " .PHP_EOL ;
1908+ echo "\t\t* scope opener set to $ arrow * " .PHP_EOL ;
1909+ echo "\t\t* scope closer set to $ scopeCloser * " .PHP_EOL ;
1910+ echo "\t\t* parenthesis opener set to $ x * " .PHP_EOL ;
1911+ echo "\t\t* parenthesis closer set to $ closer * " .PHP_EOL ;
18981912 }
18991913
19001914 $ this ->tokens [$ i ]['code ' ] = T_FN ;
0 commit comments