@@ -839,7 +839,7 @@ private function parseParameterFn() {
839839 array_pop ($ parameter ->typeDeclarationList ->children );
840840 $ parameter ->byRefToken = array_pop ($ parameter ->typeDeclarationList ->children );
841841 if (!$ parameter ->typeDeclarationList ->children ) {
842- unset( $ parameter ->typeDeclarationList ) ;
842+ $ parameter ->typeDeclarationList = null ;
843843 }
844844 }
845845 } elseif ($ parameter ->questionToken ) {
@@ -1546,7 +1546,7 @@ private function isParameterStartFn() {
15461546
15471547 /**
15481548 * @param string $className (name of subclass of DelimitedList)
1549- * @param int $delimiter
1549+ * @param int|int[] $delimiter
15501550 * @param callable $isElementStartFn
15511551 * @param callable $parseElementFn
15521552 * @param Node $parentNode
@@ -1560,7 +1560,7 @@ private function parseDelimitedList($className, $delimiter, $isElementStartFn, $
15601560 do {
15611561 if ($ isElementStartFn ($ token )) {
15621562 $ node ->addElement ($ parseElementFn ($ node ));
1563- } elseif (!$ allowEmptyElements || ($ allowEmptyElements && !$ this ->checkToken ($ delimiter ))) {
1563+ } elseif (!$ allowEmptyElements || ($ allowEmptyElements && !$ this ->checkAnyToken ($ delimiter ))) {
15641564 break ;
15651565 }
15661566
@@ -1572,7 +1572,6 @@ private function parseDelimitedList($className, $delimiter, $isElementStartFn, $
15721572 // TODO ERROR CASE - no delimiter, but a param follows
15731573 } while ($ delimiterToken !== null );
15741574
1575-
15761575 $ node ->parent = $ parentNode ;
15771576 if ($ node ->children === null ) {
15781577 return null ;
@@ -1772,10 +1771,17 @@ private function lookahead(...$expectedKinds) : bool {
17721771 return $ succeeded ;
17731772 }
17741773
1774+ /** @param int $expectedKind */
17751775 private function checkToken ($ expectedKind ) : bool {
17761776 return $ this ->getCurrentToken ()->kind === $ expectedKind ;
17771777 }
17781778
1779+ /** @param int|int[] $expectedKind */
1780+ private function checkAnyToken ($ expectedKind ) : bool {
1781+ $ kind = $ this ->getCurrentToken ()->kind ;
1782+ return \is_array ($ expectedKind ) ? \in_array ($ kind , $ expectedKind , true ) : $ kind === $ expectedKind ;
1783+ }
1784+
17791785 private function parseIfStatement ($ parentNode ) {
17801786 $ ifStatement = new IfStatementNode ();
17811787 $ ifStatement ->parent = $ parentNode ;
0 commit comments