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

Commitca8bb62

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

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

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

Lines changed: 9 additions & 11 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;
@@ -33,8 +34,10 @@
3334
*/
3435
finalclass TranslationDefaultDomainNodeVisitorimplements NodeVisitorInterface
3536
{
37+
privateconstINTERNAL_VAR_NAME ='__internal_trans_default_domain';
38+
3639
privateScope$scope;
37-
privateint$nestingLevel =0;
40+
privateint$nameCounter =0;
3841

3942
publicfunction__construct()
4043
{
@@ -48,24 +51,21 @@ public function enterNode(Node $node, Environment $env): Node
4851
}
4952

5053
if ($nodeinstanceof TransDefaultDomainNode) {
51-
++$this->nestingLevel;
52-
5354
if ($node->getNode('expr')instanceof ConstantExpression) {
5455
$this->scope->set('domain',$node->getNode('expr'));
5556

5657
return$node;
5758
}
5859

5960
if (class_exists(Nodes::class)) {
60-
$name =newLocalVariable(null,$node->getTemplateLine());
61-
$this->scope->set('domain',$name);
61+
$name =newAssignContextVariable(self::INTERNAL_VAR_NAME.(++$this->nameCounter),$node->getTemplateLine());
62+
$this->scope->set('domain',newContextVariable(self::INTERNAL_VAR_NAME.(++$this->nameCounter),$node->getTemplateLine()));
6263

6364
returnnewSetNode(false,newNodes([$name]),newNodes([$node->getNode('expr')]),$node->getTemplateLine());
6465
}
6566

66-
$var ='__internal_trans_default_domain_'.$this->nestingLevel;
67-
$name =newAssignNameExpression($var,$node->getTemplateLine());
68-
$this->scope->set('domain',newNameExpression($var,$node->getTemplateLine()));
67+
$name =newAssignNameExpression(self::INTERNAL_VAR_NAME.(++$this->nameCounter),$node->getTemplateLine());
68+
$this->scope->set('domain',newNameExpression(self::INTERNAL_VAR_NAME.(++$this->nameCounter),$node->getTemplateLine()));
6969

7070
returnnewSetNode(false,newNode([$name]),newNode([$node->getNode('expr')]),$node->getTemplateLine());
7171
}
@@ -105,8 +105,6 @@ public function enterNode(Node $node, Environment $env): Node
105105
publicfunctionleaveNode(Node$node,Environment$env): ?Node
106106
{
107107
if ($nodeinstanceof TransDefaultDomainNode) {
108-
--$this->nestingLevel;
109-
110108
returnnull;
111109
}
112110

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp