summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-08-25 13:03:16 -0400
committergit <svn-admin@ruby-lang.org>2023-08-25 19:31:33 +0000
commit0df515c0959ec3b501132cf511a56f47d6f93682 (patch)
tree6feaa47ddb6efb22ef8e3f42c1125bfdef9509b5
parent7898b8e1ea01f3cc670543416d4d3ca90b3917aa (diff)
[ruby/yarp] Mark local variable targets in pattern matching
https://github.com/ruby/yarp/commit/6c6700a001
-rw-r--r--test/yarp/snapshots/patterns.txt366
-rw-r--r--test/yarp/snapshots/seattlerb/case_in.txt36
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_31.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_42.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_42_2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_find.txt4
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_find_array.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt4
-rw-r--r--test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_pattern_058.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/rhs_asgn.txt2
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/pattern.txt14
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/since/30.txt6
-rw-r--r--test/yarp/snapshots/whitequark/pattern_matching_single_line.txt4
-rw-r--r--test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt18
-rw-r--r--yarp/config.yml20
-rw-r--r--yarp/yarp.c15
21 files changed, 109 insertions, 400 deletions
diff --git a/test/yarp/snapshots/patterns.txt b/test/yarp/snapshots/patterns.txt
index d578a43f06..a55f1ba292 100644
--- a/test/yarp/snapshots/patterns.txt
+++ b/test/yarp/snapshots/patterns.txt
@@ -3,7 +3,7 @@ ProgramNode(0...3743)(
StatementsNode(0...3743)(
[MatchRequiredNode(0...10)(
CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 2, "foo"),
- LocalVariableWriteNode(7...10)(:bar, 0, nil, (7...10), nil),
+ LocalVariableTargetNode(7...10)(:bar, 0),
(4...6)
),
MatchRequiredNode(11...19)(
@@ -1206,13 +1206,7 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1169...1177)(
ConstantReadNode(1169...1172)(),
- [LocalVariableWriteNode(1173...1176)(
- :bar,
- 0,
- nil,
- (1173...1176),
- nil
- )],
+ [LocalVariableTargetNode(1173...1176)(:bar, 0)],
nil,
[],
(1172...1173),
@@ -1237,21 +1231,9 @@ ProgramNode(0...3743)(
[],
SplatNode(1189...1193)(
(1189...1190),
- LocalVariableWriteNode(1190...1193)(
- :bar,
- 0,
- nil,
- (1190...1193),
- nil
- )
+ LocalVariableTargetNode(1190...1193)(:bar, 0)
),
- [LocalVariableWriteNode(1195...1198)(
- :baz,
- 0,
- nil,
- (1195...1198),
- nil
- )],
+ [LocalVariableTargetNode(1195...1198)(:baz, 0)],
(1188...1189),
(1198...1199)
),
@@ -1271,22 +1253,10 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1207...1221)(
ConstantReadNode(1207...1210)(),
- [LocalVariableWriteNode(1211...1214)(
- :bar,
- 0,
- nil,
- (1211...1214),
- nil
- )],
+ [LocalVariableTargetNode(1211...1214)(:bar, 0)],
SplatNode(1216...1220)(
(1216...1217),
- LocalVariableWriteNode(1217...1220)(
- :baz,
- 0,
- nil,
- (1217...1220),
- nil
- )
+ LocalVariableTargetNode(1217...1220)(:baz, 0)
),
[],
(1210...1211),
@@ -1310,30 +1280,12 @@ ProgramNode(0...3743)(
ConstantReadNode(1229...1232)(),
SplatNode(1233...1237)(
(1233...1234),
- LocalVariableWriteNode(1234...1237)(
- :bar,
- 0,
- nil,
- (1234...1237),
- nil
- )
+ LocalVariableTargetNode(1234...1237)(:bar, 0)
),
- [LocalVariableWriteNode(1239...1242)(
- :baz,
- 0,
- nil,
- (1239...1242),
- nil
- )],
+ [LocalVariableTargetNode(1239...1242)(:baz, 0)],
SplatNode(1244...1248)(
(1244...1245),
- LocalVariableWriteNode(1245...1248)(
- :qux,
- 0,
- nil,
- (1245...1248),
- nil
- )
+ LocalVariableTargetNode(1245...1248)(:qux, 0)
),
(1232...1233),
(1248...1249)
@@ -1451,13 +1403,7 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1323...1331)(
ConstantReadNode(1323...1326)(),
- [LocalVariableWriteNode(1327...1330)(
- :bar,
- 0,
- nil,
- (1327...1330),
- nil
- )],
+ [LocalVariableTargetNode(1327...1330)(:bar, 0)],
nil,
[],
(1326...1327),
@@ -1482,21 +1428,9 @@ ProgramNode(0...3743)(
[],
SplatNode(1343...1347)(
(1343...1344),
- LocalVariableWriteNode(1344...1347)(
- :bar,
- 0,
- nil,
- (1344...1347),
- nil
- )
+ LocalVariableTargetNode(1344...1347)(:bar, 0)
),
- [LocalVariableWriteNode(1349...1352)(
- :baz,
- 0,
- nil,
- (1349...1352),
- nil
- )],
+ [LocalVariableTargetNode(1349...1352)(:baz, 0)],
(1342...1343),
(1352...1353)
),
@@ -1516,22 +1450,10 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1361...1375)(
ConstantReadNode(1361...1364)(),
- [LocalVariableWriteNode(1365...1368)(
- :bar,
- 0,
- nil,
- (1365...1368),
- nil
- )],
+ [LocalVariableTargetNode(1365...1368)(:bar, 0)],
SplatNode(1370...1374)(
(1370...1371),
- LocalVariableWriteNode(1371...1374)(
- :baz,
- 0,
- nil,
- (1371...1374),
- nil
- )
+ LocalVariableTargetNode(1371...1374)(:baz, 0)
),
[],
(1364...1365),
@@ -1555,30 +1477,12 @@ ProgramNode(0...3743)(
ConstantReadNode(1383...1386)(),
SplatNode(1387...1391)(
(1387...1388),
- LocalVariableWriteNode(1388...1391)(
- :bar,
- 0,
- nil,
- (1388...1391),
- nil
- )
+ LocalVariableTargetNode(1388...1391)(:bar, 0)
),
- [LocalVariableWriteNode(1393...1396)(
- :baz,
- 0,
- nil,
- (1393...1396),
- nil
- )],
+ [LocalVariableTargetNode(1393...1396)(:baz, 0)],
SplatNode(1398...1402)(
(1398...1399),
- LocalVariableWriteNode(1399...1402)(
- :qux,
- 0,
- nil,
- (1399...1402),
- nil
- )
+ LocalVariableTargetNode(1399...1402)(:qux, 0)
),
(1386...1387),
(1402...1403)
@@ -1602,13 +1506,7 @@ ProgramNode(0...3743)(
[],
SplatNode(1412...1416)(
(1412...1413),
- LocalVariableWriteNode(1413...1416)(
- :bar,
- 0,
- nil,
- (1413...1416),
- nil
- )
+ LocalVariableTargetNode(1413...1416)(:bar, 0)
),
[],
nil,
@@ -1633,28 +1531,10 @@ ProgramNode(0...3743)(
[],
SplatNode(1424...1428)(
(1424...1425),
- LocalVariableWriteNode(1425...1428)(
- :bar,
- 0,
- nil,
- (1425...1428),
- nil
- )
+ LocalVariableTargetNode(1425...1428)(:bar, 0)
),
- [LocalVariableWriteNode(1430...1433)(
- :baz,
- 0,
- nil,
- (1430...1433),
- nil
- ),
- LocalVariableWriteNode(1435...1438)(
- :qux,
- 0,
- nil,
- (1435...1438),
- nil
- )],
+ [LocalVariableTargetNode(1430...1433)(:baz, 0),
+ LocalVariableTargetNode(1435...1438)(:qux, 0)],
nil,
nil
),
@@ -1674,30 +1554,12 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1446...1460)(
nil,
- [LocalVariableWriteNode(1446...1449)(
- :bar,
- 0,
- nil,
- (1446...1449),
- nil
- )],
+ [LocalVariableTargetNode(1446...1449)(:bar, 0)],
SplatNode(1451...1455)(
(1451...1452),
- LocalVariableWriteNode(1452...1455)(
- :baz,
- 0,
- nil,
- (1452...1455),
- nil
- )
+ LocalVariableTargetNode(1452...1455)(:baz, 0)
),
- [LocalVariableWriteNode(1457...1460)(
- :qux,
- 0,
- nil,
- (1457...1460),
- nil
- )],
+ [LocalVariableTargetNode(1457...1460)(:qux, 0)],
nil,
nil
),
@@ -1717,29 +1579,11 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1468...1482)(
nil,
- [LocalVariableWriteNode(1468...1471)(
- :bar,
- 0,
- nil,
- (1468...1471),
- nil
- ),
- LocalVariableWriteNode(1473...1476)(
- :baz,
- 0,
- nil,
- (1473...1476),
- nil
- )],
+ [LocalVariableTargetNode(1468...1471)(:bar, 0),
+ LocalVariableTargetNode(1473...1476)(:baz, 0)],
SplatNode(1478...1482)(
(1478...1479),
- LocalVariableWriteNode(1479...1482)(
- :qux,
- 0,
- nil,
- (1479...1482),
- nil
- )
+ LocalVariableTargetNode(1479...1482)(:qux, 0)
),
[],
nil,
@@ -1763,30 +1607,12 @@ ProgramNode(0...3743)(
nil,
SplatNode(1490...1494)(
(1490...1491),
- LocalVariableWriteNode(1491...1494)(
- :bar,
- 0,
- nil,
- (1491...1494),
- nil
- )
+ LocalVariableTargetNode(1491...1494)(:bar, 0)
),
- [LocalVariableWriteNode(1496...1499)(
- :baz,
- 0,
- nil,
- (1496...1499),
- nil
- )],
+ [LocalVariableTargetNode(1496...1499)(:baz, 0)],
SplatNode(1501...1505)(
(1501...1502),
- LocalVariableWriteNode(1502...1505)(
- :qux,
- 0,
- nil,
- (1502...1505),
- nil
- )
+ LocalVariableTargetNode(1502...1505)(:qux, 0)
),
nil,
nil
@@ -1882,13 +1708,7 @@ ProgramNode(0...3743)(
[],
SplatNode(1544...1548)(
(1544...1545),
- LocalVariableWriteNode(1545...1548)(
- :bar,
- 0,
- nil,
- (1545...1548),
- nil
- )
+ LocalVariableTargetNode(1545...1548)(:bar, 0)
),
[],
(1543...1544),
@@ -1913,28 +1733,10 @@ ProgramNode(0...3743)(
[],
SplatNode(1558...1562)(
(1558...1559),
- LocalVariableWriteNode(1559...1562)(
- :bar,
- 0,
- nil,
- (1559...1562),
- nil
- )
+ LocalVariableTargetNode(1559...1562)(:bar, 0)
),
- [LocalVariableWriteNode(1564...1567)(
- :baz,
- 0,
- nil,
- (1564...1567),
- nil
- ),
- LocalVariableWriteNode(1569...1572)(
- :qux,
- 0,
- nil,
- (1569...1572),
- nil
- )],
+ [LocalVariableTargetNode(1564...1567)(:baz, 0),
+ LocalVariableTargetNode(1569...1572)(:qux, 0)],
(1557...1558),
(1572...1573)
),
@@ -1954,30 +1756,12 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1581...1597)(
nil,
- [LocalVariableWriteNode(1582...1585)(
- :bar,
- 0,
- nil,
- (1582...1585),
- nil
- )],
+ [LocalVariableTargetNode(1582...1585)(:bar, 0)],
SplatNode(1587...1591)(
(1587...1588),
- LocalVariableWriteNode(1588...1591)(
- :baz,
- 0,
- nil,
- (1588...1591),
- nil
- )
+ LocalVariableTargetNode(1588...1591)(:baz, 0)
),
- [LocalVariableWriteNode(1593...1596)(
- :qux,
- 0,
- nil,
- (1593...1596),
- nil
- )],
+ [LocalVariableTargetNode(1593...1596)(:qux, 0)],
(1581...1582),
(1596...1597)
),
@@ -1997,29 +1781,11 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(1605...1621)(
nil,
- [LocalVariableWriteNode(1606...1609)(
- :bar,
- 0,
- nil,
- (1606...1609),
- nil
- ),
- LocalVariableWriteNode(1611...1614)(
- :baz,
- 0,
- nil,
- (1611...1614),
- nil
- )],
+ [LocalVariableTargetNode(1606...1609)(:bar, 0),
+ LocalVariableTargetNode(1611...1614)(:baz, 0)],
SplatNode(1616...1620)(
(1616...1617),
- LocalVariableWriteNode(1617...1620)(
- :qux,
- 0,
- nil,
- (1617...1620),
- nil
- )
+ LocalVariableTargetNode(1617...1620)(:qux, 0)
),
[],
(1605...1606),
@@ -2043,30 +1809,12 @@ ProgramNode(0...3743)(
nil,
SplatNode(1630...1634)(
(1630...1631),
- LocalVariableWriteNode(1631...1634)(
- :bar,
- 0,
- nil,
- (1631...1634),
- nil
- )
+ LocalVariableTargetNode(1631...1634)(:bar, 0)
),
- [LocalVariableWriteNode(1636...1639)(
- :baz,
- 0,
- nil,
- (1636...1639),
- nil
- )],
+ [LocalVariableTargetNode(1636...1639)(:baz, 0)],
SplatNode(1641...1645)(
(1641...1642),
- LocalVariableWriteNode(1642...1645)(
- :qux,
- 0,
- nil,
- (1642...1645),
- nil
- )
+ LocalVariableTargetNode(1642...1645)(:qux, 0)
),
(1629...1630),
(1645...1646)
@@ -2085,7 +1833,7 @@ ProgramNode(0...3743)(
2,
"foo"
),
- LocalVariableWriteNode(1655...1658)(:bar, 0, nil, (1655...1658), nil),
+ LocalVariableTargetNode(1655...1658)(:bar, 0),
(1652...1654)
),
MatchPredicateNode(1659...1667)(
@@ -2535,13 +2283,7 @@ ProgramNode(0...3743)(
"foo"
),
[InNode(2013...2024)(
- LocalVariableWriteNode(2016...2019)(
- :bar,
- 0,
- nil,
- (2016...2019),
- nil
- ),
+ LocalVariableTargetNode(2016...2019)(:bar, 0),
nil,
(2013...2015),
(2020...2024)
@@ -3176,13 +2918,7 @@ ProgramNode(0...3743)(
(2765...2767),
LocalVariableReadNode(2768...2771)(:baz, 0),
StatementsNode(2761...2764)(
- [LocalVariableWriteNode(2761...2764)(
- :bar,
- 0,
- nil,
- (2761...2764),
- nil
- )]
+ [LocalVariableTargetNode(2761...2764)(:bar, 0)]
),
nil,
nil
@@ -4035,7 +3771,7 @@ ProgramNode(0...3743)(
),
ArrayPatternNode(3696...3703)(
nil,
- [LocalVariableWriteNode(3700...3701)(:b, 0, nil, (3700...3701), nil)],
+ [LocalVariableTargetNode(3700...3701)(:b, 0)],
nil,
[],
(3696...3697),
@@ -4068,13 +3804,7 @@ ProgramNode(0...3743)(
(3734...3735),
"value"
),
- LocalVariableWriteNode(3736...3737)(
- :a,
- 0,
- nil,
- (3736...3737),
- nil
- ),
+ LocalVariableTargetNode(3736...3737)(:a, 0),
nil
)],
nil,
diff --git a/test/yarp/snapshots/seattlerb/case_in.txt b/test/yarp/snapshots/seattlerb/case_in.txt
index 8277b654c1..b83e196ece 100644
--- a/test/yarp/snapshots/seattlerb/case_in.txt
+++ b/test/yarp/snapshots/seattlerb/case_in.txt
@@ -195,7 +195,7 @@ ProgramNode(0...747)(
[SymbolNode(292...294)((292...293), (293...294), nil, "b")],
SplatNode(296...298)(
(296...297),
- LocalVariableWriteNode(297...298)(:_, 0, nil, (297...298), nil)
+ LocalVariableTargetNode(297...298)(:_, 0)
),
[SymbolNode(300...302)((300...301), (301...302), nil, "c")],
nil,
@@ -262,12 +262,12 @@ ProgramNode(0...747)(
ConstantReadNode(369...375)(),
SplatNode(376...380)(
(376...377),
- LocalVariableWriteNode(377...380)(:lhs, 0, nil, (377...380), nil)
+ LocalVariableTargetNode(377...380)(:lhs, 0)
),
- [LocalVariableWriteNode(382...383)(:x, 0, nil, (382...383), nil)],
+ [LocalVariableTargetNode(382...383)(:x, 0)],
SplatNode(385...389)(
(385...386),
- LocalVariableWriteNode(386...389)(:rhs, 0, nil, (386...389), nil)
+ LocalVariableTargetNode(386...389)(:rhs, 0)
),
(375...376),
(389...390)
@@ -287,12 +287,12 @@ ProgramNode(0...747)(
ConstantReadNode(407...413)(),
SplatNode(414...418)(
(414...415),
- LocalVariableWriteNode(415...418)(:lhs, 0, nil, (415...418), nil)
+ LocalVariableTargetNode(415...418)(:lhs, 0)
),
- [LocalVariableWriteNode(420...421)(:x, 0, nil, (420...421), nil)],
+ [LocalVariableTargetNode(420...421)(:x, 0)],
SplatNode(423...427)(
(423...424),
- LocalVariableWriteNode(424...427)(:rhs, 0, nil, (424...427), nil)
+ LocalVariableTargetNode(424...427)(:rhs, 0)
),
(413...414),
(427...428)
@@ -329,7 +329,7 @@ ProgramNode(0...747)(
),
StatementsNode(454...458)([TrueNode(454...458)()])
),
- LocalVariableWriteNode(462...463)(:c, 0, nil, (462...463), nil)],
+ LocalVariableTargetNode(462...463)(:c, 0)],
nil,
[],
(445...446),
@@ -349,20 +349,14 @@ ProgramNode(0...747)(
ArrayPatternNode(481...506)(
nil,
[SymbolNode(482...484)((482...483), (483...484), nil, "a"),
- LocalVariableWriteNode(486...487)(:b, 0, nil, (486...487), nil),
- LocalVariableWriteNode(489...490)(:c, 0, nil, (489...490), nil),
+ LocalVariableTargetNode(486...487)(:b, 0),
+ LocalVariableTargetNode(489...490)(:c, 0),
ArrayPatternNode(492...505)(
nil,
[SymbolNode(493...495)((493...494), (494...495), nil, "d")],
SplatNode(497...499)(
(497...498),
- LocalVariableWriteNode(498...499)(
- :e,
- 0,
- nil,
- (498...499),
- nil
- )
+ LocalVariableTargetNode(498...499)(:e, 0)
),
[NilNode(501...504)()],
(492...493),
@@ -408,13 +402,7 @@ ProgramNode(0...747)(
[ArrayPatternNode(550...557)(
nil,
[SymbolNode(551...553)((551...552), (552...553), nil, "b"),
- LocalVariableWriteNode(555...556)(
- :c,
- 0,
- nil,
- (555...556),
- nil
- )],
+ LocalVariableTargetNode(555...556)(:c, 0)],
nil,
[],
(550...551),
diff --git a/test/yarp/snapshots/seattlerb/case_in_31.txt b/test/yarp/snapshots/seattlerb/case_in_31.txt
index 26ff5c913f..c34b271b84 100644
--- a/test/yarp/snapshots/seattlerb/case_in_31.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_31.txt
@@ -9,7 +9,7 @@ ProgramNode(0...28)(
[SymbolNode(12...14)((12...13), (13...14), nil, "b")],
SplatNode(16...18)(
(16...17),
- LocalVariableWriteNode(17...18)(:c, 0, nil, (17...18), nil)
+ LocalVariableTargetNode(17...18)(:c, 0)
),
[],
(11...12),
diff --git a/test/yarp/snapshots/seattlerb/case_in_42.txt b/test/yarp/snapshots/seattlerb/case_in_42.txt
index 7cd17bb0e1..b98fd9f4b7 100644
--- a/test/yarp/snapshots/seattlerb/case_in_42.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_42.txt
@@ -9,7 +9,7 @@ ProgramNode(0...30)(
[SymbolNode(11...13)((11...12), (12...13), nil, "b")],
SplatNode(15...17)(
(15...16),
- LocalVariableWriteNode(16...17)(:_, 0, nil, (16...17), nil)
+ LocalVariableTargetNode(16...17)(:_, 0)
),
[],
nil,
diff --git a/test/yarp/snapshots/seattlerb/case_in_42_2.txt b/test/yarp/snapshots/seattlerb/case_in_42_2.txt
index 7c0c87e98c..945be4ddcf 100644
--- a/test/yarp/snapshots/seattlerb/case_in_42_2.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_42_2.txt
@@ -9,7 +9,7 @@ ProgramNode(0...32)(
[],
SplatNode(13...18)(
(13...14),
- LocalVariableWriteNode(14...18)(:list, 0, nil, (14...18), nil)
+ LocalVariableTargetNode(14...18)(:list, 0)
),
[],
(12...13),
diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt
index b8eee48203..d503434f7e 100644
--- a/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt
@@ -6,7 +6,7 @@ ProgramNode(0...24)(
[InNode(8...20)(
ArrayPatternNode(11...15)(
ConstantReadNode(11...12)(),
- [LocalVariableWriteNode(13...14)(:c, 0, nil, (13...14), nil)],
+ [LocalVariableTargetNode(13...14)(:c, 0)],
nil,
[],
(12...13),
diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt
index 2e29ef9d16..828d83dd52 100644
--- a/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt
@@ -10,7 +10,7 @@ ProgramNode(0...27)(
ConstantReadNode(14...15)(),
(12...14)
),
- [LocalVariableWriteNode(16...17)(:d, 0, nil, (16...17), nil)],
+ [LocalVariableTargetNode(16...17)(:d, 0)],
nil,
[],
(15...16),
diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
index 85b069fb00..c4e1380f7b 100644
--- a/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
@@ -8,7 +8,7 @@ ProgramNode(0...29)(
ConstantReadNode(11...12)(),
[CapturePatternNode(13...19)(
ConstantReadNode(13...14)(),
- LocalVariableWriteNode(18...19)(:d, 0, nil, (18...19), nil),
+ LocalVariableTargetNode(18...19)(:d, 0),
(15...17)
)],
nil,
diff --git a/test/yarp/snapshots/seattlerb/case_in_find.txt b/test/yarp/snapshots/seattlerb/case_in_find.txt
index 2d36642369..3c8e644244 100644
--- a/test/yarp/snapshots/seattlerb/case_in_find.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_find.txt
@@ -8,12 +8,12 @@ ProgramNode(0...27)(
nil,
SplatNode(13...15)(
(13...14),
- LocalVariableWriteNode(14...15)(:a, 0, nil, (14...15), nil)
+ LocalVariableTargetNode(14...15)(:a, 0)
),
[SymbolNode(17...19)((17...18), (18...19), nil, "+")],
SplatNode(21...23)(
(21...22),
- LocalVariableWriteNode(22...23)(:b, 0, nil, (22...23), nil)
+ LocalVariableTargetNode(22...23)(:b, 0)
),
nil,
nil
diff --git a/test/yarp/snapshots/seattlerb/case_in_find_array.txt b/test/yarp/snapshots/seattlerb/case_in_find_array.txt
index 410fda576a..616c8f864b 100644
--- a/test/yarp/snapshots/seattlerb/case_in_find_array.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_find_array.txt
@@ -8,7 +8,7 @@ ProgramNode(0...28)(
nil,
SplatNode(12...13)((12...13), nil),
[SymbolNode(15...17)((15...16), (16...17), nil, "b"),
- LocalVariableWriteNode(19...20)(:c, 0, nil, (19...20), nil)],
+ LocalVariableTargetNode(19...20)(:c, 0)],
SplatNode(22...23)((22...23), nil),
(11...12),
(23...24)
diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt
index 92933ca071..6c6c9e8b67 100644
--- a/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt
@@ -10,7 +10,7 @@ ProgramNode(0...56)(
SymbolNode(13...15)(nil, (13...14), (14...15), "b"),
CapturePatternNode(16...28)(
ConstantReadNode(16...23)(),
- LocalVariableWriteNode(27...28)(:x, 0, nil, (27...28), nil),
+ LocalVariableTargetNode(27...28)(:x, 0),
(24...26)
),
nil
diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt
index ed7b166852..9998de3cfe 100644
--- a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt
@@ -8,11 +8,11 @@ ProgramNode(0...35)(
nil,
[AssocNode(11...15)(
SymbolNode(11...13)(nil, (11...12), (12...13), "b"),
- LocalVariableWriteNode(14...15)(:c, 0, nil, (14...15), nil),
+ LocalVariableTargetNode(14...15)(:c, 0),
nil
),
AssocSplatNode(17...23)(
- LocalVariableWriteNode(19...23)(:rest, 0, nil, (19...23), nil),
+ LocalVariableTargetNode(19...23)(:rest, 0),
(17...19)
)],
nil,
diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
index 7bdc02e6fb..7d6634c7f8 100644
--- a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
+++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
@@ -7,7 +7,7 @@ ProgramNode(0...29)(
HashPatternNode(11...17)(
nil,
[AssocSplatNode(11...17)(
- LocalVariableWriteNode(13...17)(:rest, 0, nil, (13...17), nil),
+ LocalVariableTargetNode(13...17)(:rest, 0),
(11...13)
)],
nil,
diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_058.txt b/test/yarp/snapshots/seattlerb/parse_pattern_058.txt
index 23b0ba5d10..d9416d4a61 100644
--- a/test/yarp/snapshots/seattlerb/parse_pattern_058.txt
+++ b/test/yarp/snapshots/seattlerb/parse_pattern_058.txt
@@ -20,7 +20,7 @@ ProgramNode(0...43)(
nil
),
AssocSplatNode(20...26)(
- LocalVariableWriteNode(22...26)(:rest, 0, nil, (22...26), nil),
+ LocalVariableTargetNode(22...26)(:rest, 0),
(20...22)
)],
nil,
diff --git a/test/yarp/snapshots/seattlerb/rhs_asgn.txt b/test/yarp/snapshots/seattlerb/rhs_asgn.txt
index 7ba161b170..604a14667b 100644
--- a/test/yarp/snapshots/seattlerb/rhs_asgn.txt
+++ b/test/yarp/snapshots/seattlerb/rhs_asgn.txt
@@ -3,7 +3,7 @@ ProgramNode(0...7)(
StatementsNode(0...7)(
[MatchRequiredNode(0...7)(
IntegerNode(0...2)(),
- LocalVariableWriteNode(6...7)(:n, 0, nil, (6...7), nil),
+ LocalVariableTargetNode(6...7)(:n, 0),
(3...5)
)]
)
diff --git a/test/yarp/snapshots/unparser/corpus/literal/pattern.txt b/test/yarp/snapshots/unparser/corpus/literal/pattern.txt
index 9488cc7850..227938293b 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/pattern.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/pattern.txt
@@ -9,7 +9,7 @@ ProgramNode(0...408)(
[IntegerNode(14...15)(), IntegerNode(17...18)()],
SplatNode(20...22)(
(20...21),
- LocalVariableWriteNode(21...22)(:a, 0, nil, (21...22), nil)
+ LocalVariableTargetNode(21...22)(:a, 0)
),
[IntegerNode(24...25)()],
(13...14),
@@ -65,7 +65,7 @@ ProgramNode(0...408)(
nil,
[AssocNode(85...88)(
AssocSplatNode(85...88)(
- LocalVariableWriteNode(87...88)(:a, 0, nil, (87...88), nil),
+ LocalVariableTargetNode(87...88)(:a, 0),
(85...87)
),
nil,
@@ -102,8 +102,8 @@ ProgramNode(0...408)(
InNode(128...152)(
ArrayPatternNode(131...140)(
nil,
- [LocalVariableWriteNode(132...133)(:x, 0, nil, (132...133), nil),
- LocalVariableWriteNode(135...136)(:y, 0, nil, (135...136), nil)],
+ [LocalVariableTargetNode(132...133)(:x, 0),
+ LocalVariableTargetNode(135...136)(:y, 0)],
SplatNode(138...139)((138...139), nil),
[],
(131...132),
@@ -190,7 +190,7 @@ ProgramNode(0...408)(
InNode(268...289)(
CapturePatternNode(271...277)(
IntegerNode(271...272)(),
- LocalVariableWriteNode(276...277)(:a, 0, nil, (276...277), nil),
+ LocalVariableTargetNode(276...277)(:a, 0),
(273...275)
),
StatementsNode(285...289)([TrueNode(285...289)()]),
@@ -239,7 +239,7 @@ ProgramNode(0...408)(
[IntegerNode(360...361)(), IntegerNode(363...364)()],
SplatNode(366...368)(
(366...367),
- LocalVariableWriteNode(367...368)(:a, 0, nil, (367...368), nil)
+ LocalVariableTargetNode(367...368)(:a, 0)
),
[IntegerNode(370...371)()],
(359...360),
@@ -279,7 +279,7 @@ ProgramNode(0...408)(
IntegerNode(400...401)(),
ArrayPatternNode(405...408)(
nil,
- [LocalVariableWriteNode(406...407)(:a, 0, nil, (406...407), nil)],
+ [LocalVariableTargetNode(406...407)(:a, 0)],
nil,
[],
(405...406),
diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/30.txt b/test/yarp/snapshots/unparser/corpus/literal/since/30.txt
index 15d5136d83..4aba767795 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/since/30.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/since/30.txt
@@ -5,7 +5,7 @@ ProgramNode(0...51)(
IntegerNode(0...1)(),
ArrayPatternNode(5...8)(
nil,
- [LocalVariableWriteNode(6...7)(:a, 0, nil, (6...7), nil)],
+ [LocalVariableTargetNode(6...7)(:a, 0)],
nil,
[],
(5...6),
@@ -42,10 +42,10 @@ ProgramNode(0...51)(
FindPatternNode(39...51)(
nil,
SplatNode(40...41)((40...41), nil),
- [LocalVariableWriteNode(43...44)(:a, 0, nil, (43...44), nil)],
+ [LocalVariableTargetNode(43...44)(:a, 0)],
SplatNode(46...50)(
(46...47),
- LocalVariableWriteNode(47...50)(:foo, 0, nil, (47...50), nil)
+ LocalVariableTargetNode(47...50)(:foo, 0)
),
(39...40),
(50...51)
diff --git a/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt b/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt
index 7a0546c569..c428d83cda 100644
--- a/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt
+++ b/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt
@@ -5,7 +5,7 @@ ProgramNode(0...24)(
IntegerNode(0...1)(),
ArrayPatternNode(5...8)(
nil,
- [LocalVariableWriteNode(6...7)(:a, 0, nil, (6...7), nil)],
+ [LocalVariableTargetNode(6...7)(:a, 0)],
nil,
[],
(5...6),
@@ -18,7 +18,7 @@ ProgramNode(0...24)(
IntegerNode(13...14)(),
ArrayPatternNode(18...21)(
nil,
- [LocalVariableWriteNode(19...20)(:a, 0, nil, (19...20), nil)],
+ [LocalVariableTargetNode(19...20)(:a, 0)],
nil,
[],
(18...19),
diff --git a/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt b/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
index c6d53befee..1e009aa3db 100644
--- a/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
+++ b/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
@@ -9,8 +9,8 @@ ProgramNode(0...142)(
),
ArrayPatternNode(10...14)(
nil,
- [LocalVariableWriteNode(10...11)(:a, 0, nil, (10...11), nil),
- LocalVariableWriteNode(13...14)(:b, 0, nil, (13...14), nil)],
+ [LocalVariableTargetNode(10...11)(:a, 0),
+ LocalVariableTargetNode(13...14)(:b, 0)],
nil,
[],
nil,
@@ -27,8 +27,8 @@ ProgramNode(0...142)(
),
ArrayPatternNode(29...33)(
nil,
- [LocalVariableWriteNode(29...30)(:a, 0, nil, (29...30), nil),
- LocalVariableWriteNode(32...33)(:b, 0, nil, (32...33), nil)],
+ [LocalVariableTargetNode(29...30)(:a, 0),
+ LocalVariableTargetNode(32...33)(:b, 0)],
nil,
[],
nil,
@@ -99,7 +99,7 @@ ProgramNode(0...142)(
nil,
[AssocNode(89...99)(
SymbolNode(89...93)(nil, (89...92), (92...93), "key"),
- LocalVariableWriteNode(94...99)(:value, 0, nil, (94...99), nil),
+ LocalVariableTargetNode(94...99)(:value, 0),
nil
)],
nil,
@@ -123,13 +123,7 @@ ProgramNode(0...142)(
nil,
[AssocNode(125...135)(
SymbolNode(125...129)(nil, (125...128), (128...129), "key"),
- LocalVariableWriteNode(130...135)(
- :value,
- 0,
- nil,
- (130...135),
- nil
- ),
+ LocalVariableTargetNode(130...135)(:value, 0),
nil
)],
nil,
diff --git a/yarp/config.yml b/yarp/config.yml
index bb4d4174da..d7269f336d 100644
--- a/yarp/config.yml
+++ b/yarp/config.yml
@@ -908,9 +908,9 @@ nodes:
type: node
kind: ConstantPathNode
- name: operator_loc
- type: location?
+ type: location
- name: value
- type: node?
+ type: node
comment: |
Represents writing to a constant path.
@@ -939,9 +939,9 @@ nodes:
- name: name_loc
type: location
- name: value
- type: node?
+ type: node
- name: operator_loc
- type: location?
+ type: location
comment: |
Represents writing to a constant.
@@ -1208,9 +1208,9 @@ nodes:
- name: name_loc
type: location
- name: operator_loc
- type: location?
+ type: location
- name: value
- type: node?
+ type: node
comment: |
Represents writing to a global variable.
@@ -1354,9 +1354,9 @@ nodes:
- name: name_loc
type: location
- name: value
- type: node?
+ type: node
- name: operator_loc
- type: location?
+ type: location
comment: |
Represents writing to an instance variable.
@@ -1564,11 +1564,11 @@ nodes:
- name: depth
type: uint32
- name: value
- type: node?
+ type: node
- name: name_loc
type: location
- name: operator_loc
- type: location?
+ type: location
comment: |
Represents writing to a local variable.
diff --git a/yarp/yarp.c b/yarp/yarp.c
index f8fd94997d..ad762d89a3 100644
--- a/yarp/yarp.c
+++ b/yarp/yarp.c
@@ -3075,21 +3075,18 @@ yp_local_variable_write_node_create(yp_parser_t *parser, yp_constant_id_t consta
return node;
}
-// Allocate and initialize a new LocalVariableWriteNode node without an operator or target.
-static yp_local_variable_write_node_t *
+// Allocate and initialize a new LocalVariableTargetNode node.
+static yp_local_variable_target_node_t *
yp_local_variable_target_node_create(yp_parser_t *parser, const yp_token_t *name) {
- yp_local_variable_write_node_t *node = YP_ALLOC_NODE(parser, yp_local_variable_write_node_t);
+ yp_local_variable_target_node_t *node = YP_ALLOC_NODE(parser, yp_local_variable_target_node_t);
- *node = (yp_local_variable_write_node_t) {
+ *node = (yp_local_variable_target_node_t) {
{
- .type = YP_NODE_LOCAL_VARIABLE_WRITE_NODE,
+ .type = YP_NODE_LOCAL_VARIABLE_TARGET_NODE,
.location = YP_LOCATION_TOKEN_VALUE(name)
},
.constant_id = yp_parser_constant_id_token(parser, name),
- .depth = 0,
- .value = NULL,
- .name_loc = YP_LOCATION_TOKEN_VALUE(name),
- .operator_loc = { .start = NULL, .end = NULL }
+ .depth = 0
};
return node;