Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1a38aca

Browse files
committed
generate conflict-free variable names
1 parent273fa3f commit1a38aca

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

‎src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
useTwig\Node\Expression\ConstantExpression;
2222
useTwig\Node\Expression\FilterExpression;
2323
useTwig\Node\Expression\NameExpression;
24-
useTwig\Node\Expression\Variable\LocalVariable;
24+
useTwig\Node\Expression\Variable\AssignContextVariable;
25+
useTwig\Node\Expression\Variable\ContextVariable;
2526
useTwig\Node\ModuleNode;
2627
useTwig\Node\Node;
2728
useTwig\Node\Nodes;
@@ -34,7 +35,6 @@
3435
finalclass TranslationDefaultDomainNodeVisitorimplements NodeVisitorInterface
3536
{
3637
privateScope$scope;
37-
privateint$nestingLevel =0;
3838

3939
publicfunction__construct()
4040
{
@@ -48,22 +48,25 @@ public function enterNode(Node $node, Environment $env): Node
4848
}
4949

5050
if ($nodeinstanceof TransDefaultDomainNode) {
51-
++$this->nestingLevel;
52-
5351
if ($node->getNode('expr')instanceof ConstantExpression) {
5452
$this->scope->set('domain',$node->getNode('expr'));
5553

5654
return$node;
5755
}
5856

57+
if (null ===$templateName =$node->getTemplateName()) {
58+
thrownew \LogicException('Cannot traverse a node without a template name.');
59+
}
60+
61+
$var ='__internal_trans_default_domain'.hash('xxh128',$templateName);
62+
5963
if (class_exists(Nodes::class)) {
60-
$name =newLocalVariable(null,$node->getTemplateLine());
61-
$this->scope->set('domain',$name);
64+
$name =newAssignContextVariable($var,$node->getTemplateLine());
65+
$this->scope->set('domain',newContextVariable($var,$node->getTemplateLine()));
6266

6367
returnnewSetNode(false,newNodes([$name]),newNodes([$node->getNode('expr')]),$node->getTemplateLine());
6468
}
6569

66-
$var ='__internal_trans_default_domain_'.$this->nestingLevel;
6770
$name =newAssignNameExpression($var,$node->getTemplateLine());
6871
$this->scope->set('domain',newNameExpression($var,$node->getTemplateLine()));
6972

@@ -105,8 +108,6 @@ public function enterNode(Node $node, Environment $env): Node
105108
publicfunctionleaveNode(Node$node,Environment$env): ?Node
106109
{
107110
if ($nodeinstanceof TransDefaultDomainNode) {
108-
--$this->nestingLevel;
109-
110111
returnnull;
111112
}
112113

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp