@@ -16,6 +16,7 @@ public function __construct(?ConstExprParser $constExprParser = null)
1616 $ this ->constExprParser = $ constExprParser ;
1717 }
1818
19+ /** @phpstan-impure */
1920 public function parse (TokenIterator $ tokens ): Ast \Type \TypeNode
2021 {
2122 if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_NULLABLE )) {
@@ -36,6 +37,7 @@ public function parse(TokenIterator $tokens): Ast\Type\TypeNode
3637 }
3738
3839
40+ /** @phpstan-impure */
3941 private function parseAtomic (TokenIterator $ tokens ): Ast \Type \TypeNode
4042 {
4143 if ($ tokens ->tryConsumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES )) {
@@ -126,6 +128,7 @@ private function parseAtomic(TokenIterator $tokens): Ast\Type\TypeNode
126128 }
127129
128130
131+ /** @phpstan-impure */
129132 private function parseUnion (TokenIterator $ tokens , Ast \Type \TypeNode $ type ): Ast \Type \TypeNode
130133 {
131134 $ types = [$ type ];
@@ -138,6 +141,7 @@ private function parseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast
138141 }
139142
140143
144+ /** @phpstan-impure */
141145 private function parseIntersection (TokenIterator $ tokens , Ast \Type \TypeNode $ type ): Ast \Type \TypeNode
142146 {
143147 $ types = [$ type ];
@@ -150,6 +154,7 @@ private function parseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $typ
150154 }
151155
152156
157+ /** @phpstan-impure */
153158 private function parseNullable (TokenIterator $ tokens ): Ast \Type \TypeNode
154159 {
155160 $ tokens ->consumeTokenType (Lexer::TOKEN_NULLABLE );
@@ -171,6 +176,7 @@ private function parseNullable(TokenIterator $tokens): Ast\Type\TypeNode
171176 return new Ast \Type \NullableTypeNode ($ type );
172177 }
173178
179+ /** @phpstan-impure */
174180 public function isHtml (TokenIterator $ tokens ): bool
175181 {
176182 $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
@@ -201,6 +207,7 @@ public function isHtml(TokenIterator $tokens): bool
201207 return false ;
202208 }
203209
210+ /** @phpstan-impure */
204211 public function parseGeneric (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ baseType ): Ast \Type \GenericTypeNode
205212 {
206213 $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_ANGLE_BRACKET );
@@ -226,6 +233,7 @@ public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode
226233 }
227234
228235
236+ /** @phpstan-impure */
229237 private function parseCallable (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ identifier ): Ast \Type \TypeNode
230238 {
231239 $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_PARENTHESES );
@@ -246,6 +254,7 @@ private function parseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNod
246254 }
247255
248256
257+ /** @phpstan-impure */
249258 private function parseCallableParameter (TokenIterator $ tokens ): Ast \Type \CallableTypeParameterNode
250259 {
251260 $ type = $ this ->parse ($ tokens );
@@ -265,6 +274,7 @@ private function parseCallableParameter(TokenIterator $tokens): Ast\Type\Callabl
265274 }
266275
267276
277+ /** @phpstan-impure */
268278 private function parseCallableReturnType (TokenIterator $ tokens ): Ast \Type \TypeNode
269279 {
270280 if ($ tokens ->isCurrentTokenType (Lexer::TOKEN_NULLABLE )) {
@@ -294,6 +304,7 @@ private function parseCallableReturnType(TokenIterator $tokens): Ast\Type\TypeNo
294304 }
295305
296306
307+ /** @phpstan-impure */
297308 private function tryParseCallable (TokenIterator $ tokens , Ast \Type \IdentifierTypeNode $ identifier ): Ast \Type \TypeNode
298309 {
299310 try {
@@ -310,6 +321,7 @@ private function tryParseCallable(TokenIterator $tokens, Ast\Type\IdentifierType
310321 }
311322
312323
324+ /** @phpstan-impure */
313325 private function tryParseArray (TokenIterator $ tokens , Ast \Type \TypeNode $ type ): Ast \Type \TypeNode
314326 {
315327 try {
@@ -329,6 +341,7 @@ private function tryParseArray(TokenIterator $tokens, Ast\Type\TypeNode $type):
329341 }
330342
331343
344+ /** @phpstan-impure */
332345 private function parseArrayShape (TokenIterator $ tokens , Ast \Type \TypeNode $ type ): Ast \Type \ArrayShapeNode
333346 {
334347 $ tokens ->consumeTokenType (Lexer::TOKEN_OPEN_CURLY_BRACKET );
@@ -354,6 +367,7 @@ private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type)
354367 }
355368
356369
370+ /** @phpstan-impure */
357371 private function parseArrayShapeItem (TokenIterator $ tokens ): Ast \Type \ArrayShapeItemNode
358372 {
359373 try {
@@ -374,6 +388,7 @@ private function parseArrayShapeItem(TokenIterator $tokens): Ast\Type\ArrayShape
374388 }
375389
376390 /**
391+ * @phpstan-impure
377392 * @return Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode
378393 */
379394 private function parseArrayShapeKey (TokenIterator $ tokens )
0 commit comments