Closed
Description
Example code:
<?php
$a = function () {};
$b = fn ($a) => $a;
return 1;
Tokens:
00: T_OPEN_TAG => <?php\n
01: T_WHITESPACE => \n
02: T_VARIABLE => $a
03: T_WHITESPACE => ·
04: T_EQUAL => =
05: T_WHITESPACE => ·
06: T_CLOSURE => function
07: T_WHITESPACE => ·
08: T_OPEN_PARENTHESIS => (
09: T_CLOSE_PARENTHESIS => )
10: T_WHITESPACE => ·
11: T_OPEN_CURLY_BRACKET => {
12: T_CLOSE_CURLY_BRACKET => }
13: T_SEMICOLON => ;
14: T_WHITESPACE => \n
15: T_WHITESPACE => \n
16: T_VARIABLE => $b
17: T_WHITESPACE => ·
18: T_EQUAL => =
19: T_WHITESPACE => ·
20: T_FN => fn
21: T_WHITESPACE => ·
22: T_OPEN_PARENTHESIS => (
23: T_VARIABLE => $a
24: T_CLOSE_PARENTHESIS => )
25: T_WHITESPACE => ·
26: T_FN_ARROW => =>
27: T_WHITESPACE => ·
28: T_VARIABLE => $a
29: T_SEMICOLON => ;
30: T_WHITESPACE => \n
31: T_WHITESPACE => \n
32: T_RETURN => return
33: T_WHITESPACE => ·
34: T_LNUMBER => 1
35: T_SEMICOLON => ;
36: T_WHITESPACE => \n
Test:
$phpcsFile->findEndOfStatement(4); // result 13 - correct
$phpcsFile->findEndOfStatement(18); // result 35 - incorrect, expected 29