File tree 2 files changed +62
-1
lines changed
2 files changed +62
-1
lines changed Original file line number Diff line number Diff line change @@ -164,14 +164,19 @@ private function parseNullable(TokenIterator $tokens): Ast\Type\TypeNode
164
164
165
165
public function parseGeneric (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ baseType ): Ast \Type \GenericTypeNode
166
166
{
167
- $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
167
+ $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
168
+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
168
169
$ genericTypes = [$ this ->parse ($ tokens )];
169
170
170
171
while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
172
+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
171
173
$ genericTypes [] = $ this ->parse ($ tokens );
174
+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
172
175
}
173
176
177
+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
174
178
$ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
179
+
175
180
return new Ast \Type \GenericTypeNode ($ baseType , $ genericTypes );
176
181
}
177
182
Original file line number Diff line number Diff line change @@ -899,6 +899,62 @@ public function provideParseData(): array
899
899
new ConstTypeNode (new ConstFetchNode ('QueueAttributeName ' , '* ' )),
900
900
]),
901
901
],
902
+ [
903
+ 'array< ' . PHP_EOL .
904
+ ' Foo ' . PHP_EOL .
905
+ '> ' ,
906
+ new GenericTypeNode (
907
+ new IdentifierTypeNode ('array ' ),
908
+ [
909
+ new IdentifierTypeNode ('Foo ' )
910
+ ]
911
+ )
912
+ ],
913
+ [
914
+ 'array< ' . PHP_EOL .
915
+ ' Foo, ' . PHP_EOL .
916
+ ' Bar ' . PHP_EOL .
917
+ '> ' ,
918
+ new GenericTypeNode (
919
+ new IdentifierTypeNode ('array ' ),
920
+ [
921
+ new IdentifierTypeNode ('Foo ' ),
922
+ new IdentifierTypeNode ('Bar ' ),
923
+ ]
924
+ )
925
+ ],
926
+ [
927
+ 'array< ' . PHP_EOL .
928
+ ' Foo, Bar ' . PHP_EOL .
929
+ '> ' ,
930
+ new GenericTypeNode (
931
+ new IdentifierTypeNode ('array ' ),
932
+ [
933
+ new IdentifierTypeNode ('Foo ' ),
934
+ new IdentifierTypeNode ('Bar ' ),
935
+ ]
936
+ )
937
+ ],
938
+ [
939
+ 'array< ' . PHP_EOL .
940
+ ' Foo, ' . PHP_EOL .
941
+ ' array< ' . PHP_EOL .
942
+ ' Bar ' . PHP_EOL .
943
+ ' > ' . PHP_EOL .
944
+ '> ' ,
945
+ new GenericTypeNode (
946
+ new IdentifierTypeNode ('array ' ),
947
+ [
948
+ new IdentifierTypeNode ('Foo ' ),
949
+ new GenericTypeNode (
950
+ new IdentifierTypeNode ('array ' ),
951
+ [
952
+ new IdentifierTypeNode ('Bar ' )
953
+ ]
954
+ )
955
+ ]
956
+ )
957
+ ],
902
958
];
903
959
}
904
960
You can’t perform that action at this time.
0 commit comments