@@ -41,7 +41,7 @@ public function parse(TokenIterator $tokens): Ast\Type\TypeNode
41
41
$ type = $ this ->parseAtomic ($ tokens );
42
42
43
43
$ tokens ->pushSavePoint ();
44
- $ tokens ->skipNewLineTokens ();
44
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
45
45
46
46
try {
47
47
$ enrichedType = $ this ->enrichTypeOnUnionOrIntersection ($ tokens , $ type );
@@ -123,7 +123,7 @@ private function subParse(TokenIterator $tokens): Ast\Type\TypeNode
123
123
if ($ tokens ->isCurrentTokenValue ('is ' )) {
124
124
$ type = $ this ->parseConditional ($ tokens , $ type );
125
125
} else {
126
- $ tokens ->skipNewLineTokens ();
126
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
127
127
128
128
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_UNION )) {
129
129
$ type = $ this ->subParseUnion ($ tokens , $ type );
@@ -145,9 +145,9 @@ private function parseAtomic(TokenIterator $tokens): Ast\Type\TypeNode
145
145
$ startIndex = $ tokens ->currentTokenIndex ();
146
146
147
147
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES )) {
148
- $ tokens ->skipNewLineTokens ();
148
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
149
149
$ type = $ this ->subParse ($ tokens );
150
- $ tokens ->skipNewLineTokens ();
150
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
151
151
152
152
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_PARENTHESES );
153
153
@@ -289,9 +289,9 @@ private function subParseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type):
289
289
$ types = [$ type ];
290
290
291
291
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_UNION )) {
292
- $ tokens ->skipNewLineTokens ();
292
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
293
293
$ types [] = $ this ->parseAtomic ($ tokens );
294
- $ tokens ->skipNewLineTokens ();
294
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
295
295
}
296
296
297
297
return new Ast \Type \UnionTypeNode ($ types );
@@ -317,9 +317,9 @@ private function subParseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $
317
317
$ types = [$ type ];
318
318
319
319
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_INTERSECTION )) {
320
- $ tokens ->skipNewLineTokens ();
320
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
321
321
$ types [] = $ this ->parseAtomic ($ tokens );
322
- $ tokens ->skipNewLineTokens ();
322
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
323
323
}
324
324
325
325
return new Ast \Type \IntersectionTypeNode ($ types );
@@ -339,15 +339,15 @@ private function parseConditional(TokenIterator $tokens, Ast\Type\TypeNode $subj
339
339
340
340
$ targetType = $ this ->parse ($ tokens );
341
341
342
- $ tokens ->skipNewLineTokens ();
342
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
343
343
$ tokens ->consumeTokenType (Lexer::TOKEN_NULLABLE );
344
- $ tokens ->skipNewLineTokens ();
344
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
345
345
346
346
$ ifType = $ this ->parse ($ tokens );
347
347
348
- $ tokens ->skipNewLineTokens ();
348
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
349
349
$ tokens ->consumeTokenType (Lexer::TOKEN_COLON );
350
- $ tokens ->skipNewLineTokens ();
350
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
351
351
352
352
$ elseType = $ this ->subParse ($ tokens );
353
353
@@ -368,15 +368,15 @@ private function parseConditionalForParameter(TokenIterator $tokens, string $par
368
368
369
369
$ targetType = $ this ->parse ($ tokens );
370
370
371
- $ tokens ->skipNewLineTokens ();
371
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
372
372
$ tokens ->consumeTokenType (Lexer::TOKEN_NULLABLE );
373
- $ tokens ->skipNewLineTokens ();
373
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
374
374
375
375
$ ifType = $ this ->parse ($ tokens );
376
376
377
- $ tokens ->skipNewLineTokens ();
377
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
378
378
$ tokens ->consumeTokenType (Lexer::TOKEN_COLON );
379
- $ tokens ->skipNewLineTokens ();
379
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
380
380
381
381
$ elseType = $ this ->subParse ($ tokens );
382
382
@@ -435,7 +435,7 @@ public function isHtml(TokenIterator $tokens): bool
435
435
public function parseGeneric (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ baseType ): Ast \Type \GenericTypeNode
436
436
{
437
437
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
438
- $ tokens ->skipNewLineTokens ();
438
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
439
439
440
440
$ startLine = $ baseType ->getAttribute (Ast \Attribute::START_LINE );
441
441
$ startIndex = $ baseType ->getAttribute (Ast \Attribute::START_INDEX );
@@ -447,7 +447,7 @@ public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode
447
447
$ isFirst
448
448
|| $ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )
449
449
) {
450
- $ tokens ->skipNewLineTokens ();
450
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
451
451
452
452
// trailing comma case
453
453
if (!$ isFirst && $ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET )) {
@@ -456,7 +456,7 @@ public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode
456
456
$ isFirst = false ;
457
457
458
458
[$ genericTypes [], $ variances []] = $ this ->parseGenericTypeArgument ($ tokens );
459
- $ tokens ->skipNewLineTokens ();
459
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
460
460
}
461
461
462
462
$ type = new Ast \Type \GenericTypeNode ($ baseType , $ genericTypes , $ variances );
@@ -547,19 +547,19 @@ private function parseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNod
547
547
: [];
548
548
549
549
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES );
550
- $ tokens ->skipNewLineTokens ();
550
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
551
551
552
552
$ parameters = [];
553
553
if (!$ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_PARENTHESES )) {
554
554
$ parameters [] = $ this ->parseCallableParameter ($ tokens );
555
- $ tokens ->skipNewLineTokens ();
555
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
556
556
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
557
- $ tokens ->skipNewLineTokens ();
557
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
558
558
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_PARENTHESES )) {
559
559
break ;
560
560
}
561
561
$ parameters [] = $ this ->parseCallableParameter ($ tokens );
562
- $ tokens ->skipNewLineTokens ();
562
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
563
563
}
564
564
}
565
565
@@ -587,7 +587,7 @@ private function parseCallableTemplates(TokenIterator $tokens): array
587
587
588
588
$ isFirst = true ;
589
589
while ($ isFirst || $ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
590
- $ tokens ->skipNewLineTokens ();
590
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
591
591
592
592
// trailing comma case
593
593
if (!$ isFirst && $ tokens ->isCurrentTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET )) {
@@ -596,7 +596,7 @@ private function parseCallableTemplates(TokenIterator $tokens): array
596
596
$ isFirst = false ;
597
597
598
598
$ templates [] = $ this ->parseCallableTemplateArgument ($ tokens );
599
- $ tokens ->skipNewLineTokens ();
599
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
600
600
}
601
601
602
602
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
@@ -869,7 +869,7 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
869
869
$ done = false ;
870
870
871
871
do {
872
- $ tokens ->skipNewLineTokens ();
872
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
873
873
874
874
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET )) {
875
875
return Ast \Type \ArrayShapeNode::createSealed ($ items , $ kind );
@@ -878,22 +878,22 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
878
878
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_VARIADIC )) {
879
879
$ sealed = false ;
880
880
881
- $ tokens ->skipNewLineTokens ();
881
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
882
882
if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET )) {
883
883
if ($ kind === Ast \Type \ArrayShapeNode::KIND_ARRAY ) {
884
884
$ unsealedType = $ this ->parseArrayShapeUnsealedType ($ tokens );
885
885
} else {
886
886
$ unsealedType = $ this ->parseListShapeUnsealedType ($ tokens );
887
887
}
888
- $ tokens ->skipNewLineTokens ();
888
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
889
889
}
890
890
891
891
$ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA );
892
892
break ;
893
893
}
894
894
895
895
$ items [] = $ this ->parseArrayShapeItem ($ tokens );
896
- $ tokens ->skipNewLineTokens ();
896
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
897
897
if (!$ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
898
898
$ done = true ;
899
899
}
@@ -905,7 +905,7 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type,
905
905
906
906
} while (!$ done );
907
907
908
- $ tokens ->skipNewLineTokens ();
908
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
909
909
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET );
910
910
911
911
if ($ sealed ) {
@@ -923,7 +923,7 @@ private function parseArrayShapeItem(TokenIterator $tokens): Ast\Type\ArrayShape
923
923
$ startIndex = $ tokens ->currentTokenIndex ();
924
924
925
925
// parse any comments above the item
926
- $ tokens ->skipNewLineTokens ();
926
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
927
927
928
928
try {
929
929
$ tokens ->pushSavePoint ();
@@ -997,18 +997,18 @@ private function parseArrayShapeUnsealedType(TokenIterator $tokens): Ast\Type\Ar
997
997
$ startIndex = $ tokens ->currentTokenIndex ();
998
998
999
999
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
1000
- $ tokens ->skipNewLineTokens ();
1000
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1001
1001
1002
1002
$ valueType = $ this ->parse ($ tokens );
1003
- $ tokens ->skipNewLineTokens ();
1003
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1004
1004
1005
1005
$ keyType = null ;
1006
1006
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
1007
- $ tokens ->skipNewLineTokens ();
1007
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1008
1008
1009
1009
$ keyType = $ valueType ;
1010
1010
$ valueType = $ this ->parse ($ tokens );
1011
- $ tokens ->skipNewLineTokens ();
1011
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1012
1012
}
1013
1013
1014
1014
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
@@ -1030,10 +1030,10 @@ private function parseListShapeUnsealedType(TokenIterator $tokens): Ast\Type\Arr
1030
1030
$ startIndex = $ tokens ->currentTokenIndex ();
1031
1031
1032
1032
$ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
1033
- $ tokens ->skipNewLineTokens ();
1033
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1034
1034
1035
1035
$ valueType = $ this ->parse ($ tokens );
1036
- $ tokens ->skipNewLineTokens ();
1036
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1037
1037
1038
1038
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
1039
1039
@@ -1055,18 +1055,18 @@ private function parseObjectShape(TokenIterator $tokens): Ast\Type\ObjectShapeNo
1055
1055
$ items = [];
1056
1056
1057
1057
do {
1058
- $ tokens ->skipNewLineTokens ();
1058
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1059
1059
1060
1060
if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET )) {
1061
1061
return new Ast \Type \ObjectShapeNode ($ items );
1062
1062
}
1063
1063
1064
1064
$ items [] = $ this ->parseObjectShapeItem ($ tokens );
1065
1065
1066
- $ tokens ->skipNewLineTokens ();
1066
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1067
1067
} while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA ));
1068
1068
1069
- $ tokens ->skipNewLineTokens ();
1069
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1070
1070
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_CURLY_BRACKET );
1071
1071
1072
1072
return new Ast \Type \ObjectShapeNode ($ items );
@@ -1078,7 +1078,7 @@ private function parseObjectShapeItem(TokenIterator $tokens): Ast\Type\ObjectSha
1078
1078
$ startLine = $ tokens ->currentTokenLine ();
1079
1079
$ startIndex = $ tokens ->currentTokenIndex ();
1080
1080
1081
- $ tokens ->skipNewLineTokens ();
1081
+ $ tokens ->skipNewLineTokensAndConsumeComments ();
1082
1082
1083
1083
$ key = $ this ->parseObjectShapeKey ($ tokens );
1084
1084
$ optional = $ tokens ->tryConsumeTokenType (Lexer::TOKEN_NULLABLE );
0 commit comments