mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
[PRISM] Implement compilation for MultiWriteNodes, fix MultiTargetNodes
Compilation now works for MultiWriteNodes and MultiTargetNodes, with nesting on MultiWrites. See the tests added in this commit for example behavior.
This commit is contained in:
parent
4a6bdbd6dc
commit
f6ba87ca88
3 changed files with 75 additions and 26 deletions
|
@ -330,8 +330,33 @@ module Prism
|
|||
assert_prism_eval("pit, pit1 = 1")
|
||||
end
|
||||
|
||||
def test_MultiTargetNode
|
||||
assert_prism_eval("a, (b, c) = [1, 2, 3]")
|
||||
assert_prism_eval("a, (b, c) = [1, 2, 3]; a")
|
||||
assert_prism_eval("a, (b, c) = [1, 2, 3]; b")
|
||||
assert_prism_eval("a, (b, c) = [1, 2, 3]; c")
|
||||
assert_prism_eval("a, (b, c) = [1, [2, 3]]; c")
|
||||
assert_prism_eval("(a, (b, c, d, e), f, g), h = [1, [2, 3]], 4, 5, [6, 7]; c")
|
||||
end
|
||||
|
||||
def test_MultiWriteNode
|
||||
assert_prism_eval("foo, bar = [1,2]")
|
||||
assert_prism_eval("foo, bar = [1, 2]")
|
||||
assert_prism_eval("foo, *, bar = [1, 2]")
|
||||
assert_prism_eval("foo, bar = 1, 2")
|
||||
assert_prism_eval("foo, *, bar = 1, 2")
|
||||
assert_prism_eval("foo, *, bar = 1, 2, 3, 4")
|
||||
assert_prism_eval("a, b, *, d = 1, 2, 3, 4")
|
||||
assert_prism_eval("a, b, *, d = 1, 2")
|
||||
assert_prism_eval("(a, b), *, c = [1, 3], 4, 5")
|
||||
assert_prism_eval("(a, b), *, c = [1, 3], 4, 5; a")
|
||||
assert_prism_eval("(a, b), *, c = [1, 3], 4, 5; b")
|
||||
assert_prism_eval("(a, b), *, c = [1, 3], 4, 5; c")
|
||||
assert_prism_eval("a, *, (c, d) = [1, 3], 4, 5; a")
|
||||
assert_prism_eval("a, *, (c, d) = [1, 3], 4, 5; c")
|
||||
assert_prism_eval("(a, b, c), *, (d, e) = [1, 3], 4, 5, [6, 7]")
|
||||
assert_prism_eval("(a, b, c), *, (d, e) = [1, 3], 4, 5, [6, 7]; b")
|
||||
assert_prism_eval("(a, b, c), *, (d, e) = [1, 3], 4, 5, [6, 7]; d")
|
||||
assert_prism_eval("((a, *, b), *, (c, *, (d, *, e, f, g))), *, ((h, i, *, j), *, (k, l, m, *, n, o, p), q, r) = 1; a")
|
||||
end
|
||||
|
||||
############################################################################
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue