@@ -90,7 +90,7 @@ private function subParse(TokenIterator $tokens): Ast\Type\TypeNode
90
90
if ($ tokens ->isCurrentTokenValue ('is ' )) {
91
91
$ type = $ this ->parseConditional ($ tokens , $ type );
92
92
} else {
93
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
93
+ $ tokens ->skipNewLineTokens ( );
94
94
95
95
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_UNION )) {
96
96
$ type = $ this ->subParseUnion ($ tokens , $ type );
@@ -112,9 +112,9 @@ private function parseAtomic(TokenIterator $tokens): Ast\Type\TypeNode
112
112
$ startIndex = $ tokens ->currentTokenIndex ();
113
113
114
114
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES )) {
115
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
115
+ $ tokens ->skipNewLineTokens ( );
116
116
$ type = $ this ->subParse ($ tokens );
117
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
117
+ $ tokens ->skipNewLineTokens ( );
118
118
119
119
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_PARENTHESES );
120
120
@@ -256,9 +256,9 @@ private function subParseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type):
256
256
$ types = [$ type ];
257
257
258
258
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_UNION )) {
259
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
259
+ $ tokens ->skipNewLineTokens ( );
260
260
$ types [] = $ this ->parseAtomic ($ tokens );
261
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
261
+ $ tokens ->skipNewLineTokens ( );
262
262
}
263
263
264
264
return new Ast \Type \UnionTypeNode ($ types );
@@ -284,9 +284,9 @@ private function subParseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $
284
284
$ types = [$ type ];
285
285
286
286
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_INTERSECTION )) {
287
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
287
+ $ tokens ->skipNewLineTokens ( );
288
288
$ types [] = $ this ->parseAtomic ($ tokens );
289
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
289
+ $ tokens ->skipNewLineTokens ( );
290
290
}
291
291
292
292
return new Ast \Type \IntersectionTypeNode ($ types );
@@ -306,15 +306,15 @@ private function parseConditional(TokenIterator $tokens, Ast\Type\TypeNode $subj
306
306
307
307
$ targetType = $ this ->parse ($ tokens );
308
308
309
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
309
+ $ tokens ->skipNewLineTokens ( );
310
310
$ tokens ->consumeTokenType (Lexer::TOKEN_NULLABLE );
311
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
311
+ $ tokens ->skipNewLineTokens ( );
312
312
313
313
$ ifType = $ this ->parse ($ tokens );
314
314
315
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
315
+ $ tokens ->skipNewLineTokens ( );
316
316
$ tokens ->consumeTokenType (Lexer::TOKEN_COLON );
317
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
317
+ $ tokens ->skipNewLineTokens ( );
318
318
319
319
$ elseType = $ this ->subParse ($ tokens );
320
320
@@ -335,15 +335,15 @@ private function parseConditionalForParameter(TokenIterator $tokens, string $par
335
335
336
336
$ targetType = $ this ->parse ($ tokens );
337
337
338
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
338
+ $ tokens ->skipNewLineTokens ( );
339
339
$ tokens ->consumeTokenType (Lexer::TOKEN_NULLABLE );
340
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
340
+ $ tokens ->skipNewLineTokens ( );
341
341
342
342
$ ifType = $ this ->parse ($ tokens );
343
343
344
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
344
+ $ tokens ->skipNewLineTokens ( );
345
345
$ tokens ->consumeTokenType (Lexer::TOKEN_COLON );
346
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
346
+ $ tokens ->skipNewLineTokens ( );
347
347
348
348
$ elseType = $ this ->subParse ($ tokens );
349
349
@@ -409,8 +409,13 @@ public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode
409
409
$ variances = [];
410
410
411
411
$ isFirst = true ;
412
- while ($ isFirst || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
413
- $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
412
+ while (
413
+ $ isFirst
414
+ || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )
415
+ || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_UNION )
416
+ || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_INTERSECTION )
417
+ ) {
418
+ $ tokens ->skipNewLineTokens ();
414
419
415
420
// trailing comma case
416
421
if (!$ isFirst && $ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET )) {
@@ -419,7 +424,7 @@ public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode
419
424
$ isFirst = false ;
420
425
421
426
[$ genericTypes [], $ variances []] = $ this ->parseGenericTypeArgument ($ tokens );
422
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
427
+ $ tokens ->skipNewLineTokens ( );
423
428
}
424
429
425
430
$ type = new Ast \Type \GenericTypeNode ($ baseType , $ genericTypes , $ variances );
@@ -510,19 +515,19 @@ private function parseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNod
510
515
: [];
511
516
512
517
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES );
513
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
518
+ $ tokens ->skipNewLineTokens ( );
514
519
515
520
$ parameters = [];
516
521
if (!$ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_PARENTHESES )) {
517
522
$ parameters [] = $ this ->parseCallableParameter ($ tokens );
518
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
523
+ $ tokens ->skipNewLineTokens ( );
519
524
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
520
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
525
+ $ tokens ->skipNewLineTokens ( );
521
526
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_PARENTHESES )) {
522
527
break ;
523
528
}
524
529
$ parameters [] = $ this ->parseCallableParameter ($ tokens );
525
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
530
+ $ tokens ->skipNewLineTokens ( );
526
531
}
527
532
}
528
533
@@ -550,7 +555,7 @@ private function parseCallableTemplates(TokenIterator $tokens): array
550
555
551
556
$ isFirst = true ;
552
557
while ($ isFirst || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
553
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
558
+ $ tokens ->skipNewLineTokens ( );
554
559
555
560
// trailing comma case
556
561
if (!$ isFirst && $ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET )) {
@@ -559,7 +564,7 @@ private function parseCallableTemplates(TokenIterator $tokens): array
559
564
$ isFirst = false ;
560
565
561
566
$ templates [] = $ this ->parseCallableTemplateArgument ($ tokens );
562
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
567
+ $ tokens ->skipNewLineTokens ( );
563
568
}
564
569
565
570
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
@@ -830,7 +835,7 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
830
835
$ unsealedType = null ;
831
836
832
837
do {
833
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
838
+ $ tokens ->skipNewLineTokens ( );
834
839
835
840
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET )) {
836
841
return Ast \Type \ArrayShapeNode::createSealed ($ items , $ kind );
@@ -839,14 +844,14 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
839
844
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_VARIADIC )) {
840
845
$ sealed = false ;
841
846
842
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
847
+ $ tokens ->skipNewLineTokens ( );
843
848
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET )) {
844
849
if ($ kind === Ast \Type \ArrayShapeNode::KIND_ARRAY ) {
845
850
$ unsealedType = $ this ->parseArrayShapeUnsealedType ($ tokens );
846
851
} else {
847
852
$ unsealedType = $ this ->parseListShapeUnsealedType ($ tokens );
848
853
}
849
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
854
+ $ tokens ->skipNewLineTokens ( );
850
855
}
851
856
852
857
$ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA );
@@ -855,10 +860,10 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
855
860
856
861
$ items [] = $ this ->parseArrayShapeItem ($ tokens );
857
862
858
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
863
+ $ tokens ->skipNewLineTokens ( );
859
864
} while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA ));
860
865
861
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
866
+ $ tokens ->skipNewLineTokens ( );
862
867
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET );
863
868
864
869
if ($ sealed ) {
@@ -945,18 +950,18 @@ private function parseArrayShapeUnsealedType(TokenIterator $tokens): Ast\Type\Ar
945
950
$ startIndex = $ tokens ->currentTokenIndex ();
946
951
947
952
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
948
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
953
+ $ tokens ->skipNewLineTokens ( );
949
954
950
955
$ valueType = $ this ->parse ($ tokens );
951
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
956
+ $ tokens ->skipNewLineTokens ( );
952
957
953
958
$ keyType = null ;
954
959
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
955
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
960
+ $ tokens ->skipNewLineTokens ( );
956
961
957
962
$ keyType = $ valueType ;
958
963
$ valueType = $ this ->parse ($ tokens );
959
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
964
+ $ tokens ->skipNewLineTokens ( );
960
965
}
961
966
962
967
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
@@ -978,10 +983,10 @@ private function parseListShapeUnsealedType(TokenIterator $tokens): Ast\Type\Arr
978
983
$ startIndex = $ tokens ->currentTokenIndex ();
979
984
980
985
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
981
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
986
+ $ tokens ->skipNewLineTokens ( );
982
987
983
988
$ valueType = $ this ->parse ($ tokens );
984
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
989
+ $ tokens ->skipNewLineTokens ( );
985
990
986
991
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
987
992
@@ -1003,18 +1008,18 @@ private function parseObjectShape(TokenIterator $tokens): Ast\Type\ObjectShapeNo
1003
1008
$ items = [];
1004
1009
1005
1010
do {
1006
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
1011
+ $ tokens ->skipNewLineTokens ( );
1007
1012
1008
1013
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET )) {
1009
1014
return new Ast \Type \ObjectShapeNode ($ items );
1010
1015
}
1011
1016
1012
1017
$ items [] = $ this ->parseObjectShapeItem ($ tokens );
1013
1018
1014
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
1019
+ $ tokens ->skipNewLineTokens ( );
1015
1020
} while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA ));
1016
1021
1017
- $ tokens ->tryConsumeTokenType (Lexer:: TOKEN_PHPDOC_EOL );
1022
+ $ tokens ->skipNewLineTokens ( );
1018
1023
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET );
1019
1024
1020
1025
return new Ast \Type \ObjectShapeNode ($ items );
0 commit comments