From 406b3e5969752cfd01da58d61b7e28d62902ede6 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 12 Dec 2022 16:33:12 +0100 Subject: [PATCH] Fix optimizing closures callbacks --- src/Node/Expression/CallExpression.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Node/Expression/CallExpression.php b/src/Node/Expression/CallExpression.php index 79e9defdf..aeb38c42f 100644 --- a/src/Node/Expression/CallExpression.php +++ b/src/Node/Expression/CallExpression.php @@ -304,7 +304,9 @@ abstract class CallExpression extends AbstractExpression if ($object = $r->getClosureThis()) { $callable = [$object, $r->name]; $callableName = (\function_exists('get_debug_type') ? get_debug_type($object) : \get_class($object)).'::'.$r->name; - } elseif ($class = $r->getClosureScopeClass()) { + } elseif (\PHP_VERSION_ID >= 80111 && $class = $r->getClosureCalledClass()) { + $callableName = $class->name.'::'.$r->name; + } elseif (\PHP_VERSION_ID < 80111 && $class = $r->getClosureScopeClass()) { $callableName = (\is_array($callable) ? $callable[0] : $class->name).'::'.$r->name; } else { $callable = $callableName = $r->name;