File tree Expand file tree Collapse file tree 2 files changed +62
-1
lines changed Expand file tree Collapse file tree 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
164164
165165 public function parseGeneric (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ baseType ): Ast \Type \GenericTypeNode
166166 {
167- $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
167+ $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
168+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
168169 $ genericTypes = [$ this ->parse ($ tokens )];
169170
170171 while ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_COMMA )) {
172+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
171173 $ genericTypes [] = $ this ->parse ($ tokens );
174+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
172175 }
173176
177+ $ tokens ->tryConsumeTokenType (Lexer::TOKEN_PHPDOC_EOL );
174178 $ tokens ->consumeTokenType (Lexer::TOKEN_CLOSE_ANGLE_BRACKET );
179+
175180 return new Ast \Type \GenericTypeNode ($ baseType , $ genericTypes );
176181 }
177182
Original file line number Diff line number Diff line change @@ -899,6 +899,62 @@ public function provideParseData(): array
899899 new ConstTypeNode (new ConstFetchNode ('QueueAttributeName ' , '* ' )),
900900 ]),
901901 ],
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+ ],
902958 ];
903959 }
904960
You can’t perform that action at this time.
0 commit comments