@@ -4091,10 +4091,13 @@ private function mergeVariableHolders(array $ourVariableTypeHolders, array $thei
40914091 $ intersectedVariableTypeHolders [$ exprString ] = $ variableTypeHolder ->and ($ theirVariableTypeHolders [$ exprString ]);
40924092 } else {
40934093 $ expr = $ variableTypeHolder ->getExpr ();
4094- if (!$ expr ->hasAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME )) {
4095- $ expr ->setAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME , $ nodeFinder ->findFirst ($ expr , $ globalVariableCallback ) !== null );
4094+
4095+ $ containsSuperGlobal = $ expr ->getAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME );
4096+ if ($ containsSuperGlobal === null ) {
4097+ $ containsSuperGlobal = $ nodeFinder ->findFirst ($ expr , $ globalVariableCallback ) !== null ;
4098+ $ expr ->setAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME , $ containsSuperGlobal );
40964099 }
4097- if ($ expr -> getAttribute ( self :: CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME ) === true ) {
4100+ if ($ containsSuperGlobal === true ) {
40984101 continue ;
40994102 }
41004103
@@ -4108,10 +4111,13 @@ private function mergeVariableHolders(array $ourVariableTypeHolders, array $thei
41084111 }
41094112
41104113 $ expr = $ variableTypeHolder ->getExpr ();
4111- if (!$ expr ->hasAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME )) {
4112- $ expr ->setAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME , $ nodeFinder ->findFirst ($ expr , $ globalVariableCallback ) !== null );
4114+
4115+ $ containsSuperGlobal = $ expr ->getAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME );
4116+ if ($ containsSuperGlobal === null ) {
4117+ $ containsSuperGlobal = $ nodeFinder ->findFirst ($ expr , $ globalVariableCallback ) !== null ;
4118+ $ expr ->setAttribute (self ::CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME , $ containsSuperGlobal );
41134119 }
4114- if ($ expr -> getAttribute ( self :: CONTAINS_SUPER_GLOBAL_ATTRIBUTE_NAME ) === true ) {
4120+ if ($ containsSuperGlobal === true ) {
41154121 continue ;
41164122 }
41174123
0 commit comments