summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-09-15 11:38:59 -0400
committergit <svn-admin@ruby-lang.org>2023-09-15 15:41:02 +0000
commit28fe88468d7bde129221415bfa874f4b70bf6843 (patch)
tree501b904836fd71dbfb59de61536ac8f1ffc1a77a
parent5f9f2fd72e7cf1794fe050fb34d1f4413d1c3fb9 (diff)
[ruby/yarp] Add more tests for implicit hash values
https://github.com/ruby/yarp/commit/1ddd74dc11
-rw-r--r--test/yarp/fixtures/hashes.txt6
-rw-r--r--test/yarp/snapshots/hashes.txt174
2 files changed, 143 insertions, 37 deletions
diff --git a/test/yarp/fixtures/hashes.txt b/test/yarp/fixtures/hashes.txt
index 42c430e43e..443b2359c6 100644
--- a/test/yarp/fixtures/hashes.txt
+++ b/test/yarp/fixtures/hashes.txt
@@ -18,3 +18,9 @@
{ a: b, c: d, **e, f: g }
{ "a": !b? }
+
+a = 1
+tap do
+ b = 1
+ { a:, b:, c:, D: }
+end
diff --git a/test/yarp/snapshots/hashes.txt b/test/yarp/snapshots/hashes.txt
index dde8ba0199..b49db786a2 100644
--- a/test/yarp/snapshots/hashes.txt
+++ b/test/yarp/snapshots/hashes.txt
@@ -1,8 +1,8 @@
-@ ProgramNode (location: (0...120))
-├── locals: []
+@ ProgramNode (location: (0...167))
+├── locals: [:a]
└── statements:
- @ StatementsNode (location: (0...120))
- └── body: (length: 7)
+ @ StatementsNode (location: (0...167))
+ └── body: (length: 9)
├── @ HashNode (location: (0...2))
│ ├── opening_loc: (0...1) = "{"
│ ├── elements: (length: 0)
@@ -220,36 +220,136 @@
│ │ │ └── name: "g"
│ │ └── operator_loc: ∅
│ └── closing_loc: (105...106) = "}"
- └── @ HashNode (location: (108...120))
- ├── opening_loc: (108...109) = "{"
- ├── elements: (length: 1)
- │ └── @ AssocNode (location: (110...118))
- │ ├── key:
- │ │ @ SymbolNode (location: (110...114))
- │ │ ├── opening_loc: (110...111) = "\""
- │ │ ├── value_loc: (111...112) = "a"
- │ │ ├── closing_loc: (112...114) = "\":"
- │ │ └── unescaped: "a"
- │ ├── value:
- │ │ @ CallNode (location: (115...118))
- │ │ ├── receiver:
- │ │ │ @ CallNode (location: (116...118))
- │ │ │ ├── receiver: ∅
- │ │ │ ├── call_operator_loc: ∅
- │ │ │ ├── message_loc: (116...118) = "b?"
- │ │ │ ├── opening_loc: ∅
- │ │ │ ├── arguments: ∅
- │ │ │ ├── closing_loc: ∅
- │ │ │ ├── block: ∅
- │ │ │ ├── flags: ∅
- │ │ │ └── name: "b?"
- │ │ ├── call_operator_loc: ∅
- │ │ ├── message_loc: (115...116) = "!"
- │ │ ├── opening_loc: ∅
- │ │ ├── arguments: ∅
- │ │ ├── closing_loc: ∅
- │ │ ├── block: ∅
- │ │ ├── flags: ∅
- │ │ └── name: "!"
- │ └── operator_loc: ∅
- └── closing_loc: (119...120) = "}"
+ ├── @ HashNode (location: (108...120))
+ │ ├── opening_loc: (108...109) = "{"
+ │ ├── elements: (length: 1)
+ │ │ └── @ AssocNode (location: (110...118))
+ │ │ ├── key:
+ │ │ │ @ SymbolNode (location: (110...114))
+ │ │ │ ├── opening_loc: (110...111) = "\""
+ │ │ │ ├── value_loc: (111...112) = "a"
+ │ │ │ ├── closing_loc: (112...114) = "\":"
+ │ │ │ └── unescaped: "a"
+ │ │ ├── value:
+ │ │ │ @ CallNode (location: (115...118))
+ │ │ │ ├── receiver:
+ │ │ │ │ @ CallNode (location: (116...118))
+ │ │ │ │ ├── receiver: ∅
+ │ │ │ │ ├── call_operator_loc: ∅
+ │ │ │ │ ├── message_loc: (116...118) = "b?"
+ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ ├── arguments: ∅
+ │ │ │ │ ├── closing_loc: ∅
+ │ │ │ │ ├── block: ∅
+ │ │ │ │ ├── flags: ∅
+ │ │ │ │ └── name: "b?"
+ │ │ │ ├── call_operator_loc: ∅
+ │ │ │ ├── message_loc: (115...116) = "!"
+ │ │ │ ├── opening_loc: ∅
+ │ │ │ ├── arguments: ∅
+ │ │ │ ├── closing_loc: ∅
+ │ │ │ ├── block: ∅
+ │ │ │ ├── flags: ∅
+ │ │ │ └── name: "!"
+ │ │ └── operator_loc: ∅
+ │ └── closing_loc: (119...120) = "}"
+ ├── @ LocalVariableWriteNode (location: (122...127))
+ │ ├── name: :a
+ │ ├── depth: 0
+ │ ├── name_loc: (122...123) = "a"
+ │ ├── value:
+ │ │ @ IntegerNode (location: (126...127))
+ │ │ └── flags: decimal
+ │ └── operator_loc: (124...125) = "="
+ └── @ CallNode (location: (128...167))
+ ├── receiver: ∅
+ ├── call_operator_loc: ∅
+ ├── message_loc: (128...131) = "tap"
+ ├── opening_loc: ∅
+ ├── arguments: ∅
+ ├── closing_loc: ∅
+ ├── block:
+ │ @ BlockNode (location: (132...167))
+ │ ├── locals: [:b]
+ │ ├── parameters: ∅
+ │ ├── body:
+ │ │ @ StatementsNode (location: (137...163))
+ │ │ └── body: (length: 2)
+ │ │ ├── @ LocalVariableWriteNode (location: (137...142))
+ │ │ │ ├── name: :b
+ │ │ │ ├── depth: 0
+ │ │ │ ├── name_loc: (137...138) = "b"
+ │ │ │ ├── value:
+ │ │ │ │ @ IntegerNode (location: (141...142))
+ │ │ │ │ └── flags: decimal
+ │ │ │ └── operator_loc: (139...140) = "="
+ │ │ └── @ HashNode (location: (145...163))
+ │ │ ├── opening_loc: (145...146) = "{"
+ │ │ ├── elements: (length: 4)
+ │ │ │ ├── @ AssocNode (location: (147...149))
+ │ │ │ │ ├── key:
+ │ │ │ │ │ @ SymbolNode (location: (147...149))
+ │ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ │ ├── value_loc: (147...148) = "a"
+ │ │ │ │ │ ├── closing_loc: (148...149) = ":"
+ │ │ │ │ │ └── unescaped: "a"
+ │ │ │ │ ├── value:
+ │ │ │ │ │ @ ImplicitNode (location: (147...149))
+ │ │ │ │ │ └── value:
+ │ │ │ │ │ @ LocalVariableReadNode (location: (147...149))
+ │ │ │ │ │ ├── name: :a
+ │ │ │ │ │ └── depth: 1
+ │ │ │ │ └── operator_loc: ∅
+ │ │ │ ├── @ AssocNode (location: (151...153))
+ │ │ │ │ ├── key:
+ │ │ │ │ │ @ SymbolNode (location: (151...153))
+ │ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ │ ├── value_loc: (151...152) = "b"
+ │ │ │ │ │ ├── closing_loc: (152...153) = ":"
+ │ │ │ │ │ └── unescaped: "b"
+ │ │ │ │ ├── value:
+ │ │ │ │ │ @ ImplicitNode (location: (151...153))
+ │ │ │ │ │ └── value:
+ │ │ │ │ │ @ LocalVariableReadNode (location: (151...153))
+ │ │ │ │ │ ├── name: :b
+ │ │ │ │ │ └── depth: 0
+ │ │ │ │ └── operator_loc: ∅
+ │ │ │ ├── @ AssocNode (location: (155...157))
+ │ │ │ │ ├── key:
+ │ │ │ │ │ @ SymbolNode (location: (155...157))
+ │ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ │ ├── value_loc: (155...156) = "c"
+ │ │ │ │ │ ├── closing_loc: (156...157) = ":"
+ │ │ │ │ │ └── unescaped: "c"
+ │ │ │ │ ├── value:
+ │ │ │ │ │ @ ImplicitNode (location: (155...157))
+ │ │ │ │ │ └── value:
+ │ │ │ │ │ @ CallNode (location: (155...157))
+ │ │ │ │ │ ├── receiver: ∅
+ │ │ │ │ │ ├── call_operator_loc: ∅
+ │ │ │ │ │ ├── message_loc: (155...156) = "c"
+ │ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ │ ├── arguments: ∅
+ │ │ │ │ │ ├── closing_loc: ∅
+ │ │ │ │ │ ├── block: ∅
+ │ │ │ │ │ ├── flags: ∅
+ │ │ │ │ │ └── name: "c"
+ │ │ │ │ └── operator_loc: ∅
+ │ │ │ └── @ AssocNode (location: (159...161))
+ │ │ │ ├── key:
+ │ │ │ │ @ SymbolNode (location: (159...161))
+ │ │ │ │ ├── opening_loc: ∅
+ │ │ │ │ ├── value_loc: (159...160) = "D"
+ │ │ │ │ ├── closing_loc: (160...161) = ":"
+ │ │ │ │ └── unescaped: "D"
+ │ │ │ ├── value:
+ │ │ │ │ @ ImplicitNode (location: (159...161))
+ │ │ │ │ └── value:
+ │ │ │ │ @ ConstantReadNode (location: (159...161))
+ │ │ │ │ └── name: :D
+ │ │ │ └── operator_loc: ∅
+ │ │ └── closing_loc: (162...163) = "}"
+ │ ├── opening_loc: (132...134) = "do"
+ │ └── closing_loc: (164...167) = "end"
+ ├── flags: ∅
+ └── name: "tap"