assertTrue($node->hasNode('name')); $this->assertNull($node->getAttribute('name')); } public function testDynamicNameResolvesMacroAtRuntime(): void { $env = new Environment(new ArrayLoader()); $compiler = new \Twig\Compiler($env); $node = new MacroReferenceExpression( new MacroVariable('mac', 1), new ContextVariable('name', 1), new ArrayExpression([], 1), 1, ); $compiler->compile($node); $this->assertStringContainsString('->call(', $compiler->getSource()); $this->assertStringContainsString('($context["name"] ?? null), [], $context, 1, $this->getSourceContext())', $compiler->getSource()); $this->assertStringNotContainsString("'macro_'.", $compiler->getSource()); } }