createForHostVersion()->parse(<<<'PHP' findFirstInstanceOf($nodes, Function_::class); self::assertInstanceOf(Function_::class, $function); $analysis = (new ReferenceCaptureAnalyzer())->analyze($function->stmts); self::assertSame(['outer' => true], $analysis['captures']); self::assertSame( ['staticValue' => true, 'globalValue' => true], $analysis['nonLocals'], ); $closure = $finder->findFirstInstanceOf($function->stmts, Closure::class); self::assertInstanceOf(Closure::class, $closure); $nestedAnalysis = (new ReferenceCaptureAnalyzer())->analyze($closure->stmts); self::assertSame(['inner' => true], $nestedAnalysis['captures']); } }