@@ -599,7 +599,7 @@ private function processStmtNode(
599599 $ throwPoints = [];
600600 $ impurePoints = [];
601601 $ this ->processAttributeGroups ($ stmt , $ stmt ->attrGroups , $ scope , $ nodeCallback );
602- [$ templateTypeMap , $ phpDocParameterTypes , $ phpDocImmediatelyInvokedCallableParameters , $ phpDocClosureThisTypeParameters , $ phpDocReturnType , $ phpDocThrowType , $ deprecatedDescription , $ isDeprecated , $ isInternal , $ isFinal , $ isPure , $ acceptsNamedArguments , , $ phpDocComment , $ asserts , $ selfOutType , $ phpDocParameterOutTypes ] = $ this ->getPhpDocs ($ scope , $ stmt );
602+ [$ templateTypeMap , $ phpDocParameterTypes , $ phpDocImmediatelyInvokedCallableParameters , $ phpDocClosureThisTypeParameters , $ phpDocReturnType , $ phpDocThrowType , $ deprecatedDescription , $ isDeprecated , $ isInternal , $ isFinal , $ isPure , $ acceptsNamedArguments , , $ phpDocComment , $ asserts , $ selfOutType , $ phpDocParameterOutTypes, $ pureUnlessCallableIsImpureParameters ] = $ this ->getPhpDocs ($ scope , $ stmt );
603603
604604 foreach ($ stmt ->params as $ param ) {
605605 $ this ->processParamNode ($ stmt , $ param , $ scope , $ nodeCallback );
@@ -6000,7 +6000,7 @@ private function processNodesForCalledMethod($node, string $fileName, MethodRefl
60006000 }
60016001
60026002 /**
6003- * @return array{TemplateTypeMap, array<string, Type>, array<string, bool>, array<string, Type>, ?Type, ?Type, ?string, bool, bool, bool, bool|null, bool, bool, string|null, Assertions, ?Type, array<string, Type>, array<(string|int), VarTag>, bool}
6003+ * @return array{TemplateTypeMap, array<string, Type>, array<string, bool>, array<string, Type>, ?Type, ?Type, ?string, bool, bool, bool, bool|null, bool, bool, string|null, Assertions, ?Type, array<string, Type>, array<(string|int), VarTag>, bool, array<string, bool> }
60046004 */
60056005 public function getPhpDocs (Scope $ scope , Node \FunctionLike |Node \Stmt \Property $ node ): array
60066006 {
@@ -6030,6 +6030,7 @@ public function getPhpDocs(Scope $scope, Node\FunctionLike|Node\Stmt\Property $n
60306030 $ resolvedPhpDoc = null ;
60316031 $ functionName = null ;
60326032 $ phpDocParameterOutTypes = [];
6033+ $ phpDocPureUnlessCallableIsImpureParameters = [];
60336034
60346035 if ($ node instanceof Node \Stmt \ClassMethod) {
60356036 if (!$ scope ->isInClass ()) {
@@ -6152,9 +6153,10 @@ public function getPhpDocs(Scope $scope, Node\FunctionLike|Node\Stmt\Property $n
61526153 $ asserts = Assertions::createFromResolvedPhpDocBlock ($ resolvedPhpDoc );
61536154 $ selfOutType = $ resolvedPhpDoc ->getSelfOutTag () !== null ? $ resolvedPhpDoc ->getSelfOutTag ()->getType () : null ;
61546155 $ varTags = $ resolvedPhpDoc ->getVarTags ();
6156+ $ phpDocPureUnlessCallableIsImpureParameters = $ resolvedPhpDoc ->getParamsPureUnlessCallableIsImpure ();
61556157 }
61566158
6157- return [$ templateTypeMap , $ phpDocParameterTypes , $ phpDocImmediatelyInvokedCallableParameters , $ phpDocClosureThisTypeParameters , $ phpDocReturnType , $ phpDocThrowType , $ deprecatedDescription , $ isDeprecated , $ isInternal , $ isFinal , $ isPure , $ acceptsNamedArguments , $ isReadOnly , $ docComment , $ asserts , $ selfOutType , $ phpDocParameterOutTypes , $ varTags , $ isAllowedPrivateMutation ];
6159+ return [$ templateTypeMap , $ phpDocParameterTypes , $ phpDocImmediatelyInvokedCallableParameters , $ phpDocClosureThisTypeParameters , $ phpDocReturnType , $ phpDocThrowType , $ deprecatedDescription , $ isDeprecated , $ isInternal , $ isFinal , $ isPure , $ acceptsNamedArguments , $ isReadOnly , $ docComment , $ asserts , $ selfOutType , $ phpDocParameterOutTypes , $ varTags , $ isAllowedPrivateMutation, $ phpDocPureUnlessCallableIsImpureParameters ];
61586160 }
61596161
61606162 private function transformStaticType (ClassReflection $ declaringClass , Type $ type ): Type
0 commit comments