@@ -1606,7 +1606,7 @@ public RubyNode visitForNode(Nodes.ForNode node) {
1606
1606
} else if (node .index instanceof Nodes .CallTargetNode target ) {
1607
1607
final var arguments = new Nodes .ArgumentsNode (NO_FLAGS , new Nodes .Node []{ readParameter }, 0 , 0 );
1608
1608
1609
- // target flags could contain SAFE_NAVIGATION flag
1609
+ // preserve target flags because they can contain SAFE_NAVIGATION flag
1610
1610
int flags = target .flags | Nodes .CallNodeFlags .ATTRIBUTE_WRITE ;
1611
1611
1612
1612
writeIndex = new Nodes .CallNode ((short ) flags , target .receiver , target .name , arguments , null , 0 , 0 );
@@ -1624,10 +1624,7 @@ public RubyNode visitForNode(Nodes.ForNode node) {
1624
1624
statements [statements .length - 1 ] = readParameter ;
1625
1625
arguments = new Nodes .ArgumentsNode (NO_FLAGS , statements , 0 , 0 );
1626
1626
1627
- // there are no flags at the moment that could be set for target
1628
- int flags = target .flags | Nodes .CallNodeFlags .ATTRIBUTE_WRITE ;
1629
-
1630
- writeIndex = new Nodes .CallNode ((short ) flags , target .receiver , "[]=" , arguments , target .block , 0 , 0 );
1627
+ writeIndex = new Nodes .CallNode (target .flags , target .receiver , "[]=" , arguments , target .block , 0 , 0 );
1631
1628
} else if (node .index instanceof Nodes .MultiTargetNode target ) {
1632
1629
writeIndex = new Nodes .MultiWriteNode (target .lefts , target .rest , target .rights , readParameter , 0 , 0 );
1633
1630
} else {
@@ -2007,11 +2004,7 @@ public RubyNode visitIndexTargetNode(Nodes.IndexTargetNode node) {
2007
2004
node .arguments .length );
2008
2005
}
2009
2006
2010
- // Prism doesn't set any flag for IndexTargetNode right now
2011
- // but let's still take flags into account as far as there may be additional flags or other changes
2012
- short flags = (short ) (node .flags | Nodes .CallNodeFlags .ATTRIBUTE_WRITE );
2013
-
2014
- final var callNode = new Nodes .CallNode (flags , node .receiver , "[]=" , argumentsNode , node .block ,
2007
+ final var callNode = new Nodes .CallNode (node .flags , node .receiver , "[]=" , argumentsNode , node .block ,
2015
2008
node .startOffset ,
2016
2009
node .length );
2017
2010
return callNode .accept (this );
0 commit comments