@@ -173,6 +173,7 @@ public function analyseExpr(
173173
174174 if ($ constructorReflection !== null ) {
175175 $ storage = yield new PersistStorageRequest ();
176+ yield new RestoreStorageRequest ($ storage );
176177 $ parametersAcceptor = (yield new RunInFiberRequest (static fn () => ParametersAcceptorSelector::selectFromArgs (
177178 $ scope ,
178179 $ expr ->getArgs (),
@@ -230,6 +231,7 @@ private function processAnonymousClass(
230231 if ($ classReflection ->hasConstructor ()) {
231232 $ constructorReflection = $ classReflection ->getConstructor ();
232233 $ storage = yield new PersistStorageRequest ();
234+ yield new RestoreStorageRequest ($ storage );
233235 $ parametersAcceptor = (yield new RunInFiberRequest (static fn () => ParametersAcceptorSelector::selectFromArgs (
234236 $ scope ,
235237 $ expr ->getArgs (),
@@ -397,6 +399,7 @@ private function exactInstantiation(GeneratorScope $scope, New_ $node, Name $cla
397399 );
398400
399401 $ storage = yield new PersistStorageRequest ();
402+ yield new RestoreStorageRequest ($ storage );
400403 $ parametersAcceptor = (yield new RunInFiberRequest (static fn () => ParametersAcceptorSelector::selectFromArgs (
401404 $ scope ,
402405 $ methodCall ->getArgs (),
@@ -424,8 +427,6 @@ private function exactInstantiation(GeneratorScope $scope, New_ $node, Name $cla
424427 }
425428 }
426429
427- yield new RestoreStorageRequest ($ storage );
428-
429430 if (count ($ resolvedTypes ) > 0 ) {
430431 return TypeCombinator::union (...$ resolvedTypes );
431432 }
@@ -435,6 +436,8 @@ private function exactInstantiation(GeneratorScope $scope, New_ $node, Name $cla
435436 return $ methodResult ;
436437 }
437438
439+ yield new RestoreStorageRequest ($ storage );
440+
438441 $ objectType = $ isStatic ? new StaticType ($ classReflection ) : new ObjectType ($ resolvedClassName , classReflection: $ classReflection );
439442 if (!$ classReflection ->isGeneric ()) {
440443 return $ objectType ;
0 commit comments