diff options
author | Li Jin <dragon-fly@qq.com> | 2024-09-03 23:23:25 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2024-09-03 23:23:25 +0800 |
commit | 2f8215df7288e0aac690c8e8b1ff79865f114302 (patch) | |
tree | 2fc316ec0d6ca82123dc1fbc2012d8eeb3bc8427 /spec/outputs/destructure.lua | |
parent | 880b7eb9a427b263091f6eef5197c0285c723fd7 (diff) | |
download | yuescript-0.25.0.tar.gz yuescript-0.25.0.tar.bz2 yuescript-0.25.0.zip |
fix correct evaluation order for multi-value assignments.v0.25.0
Diffstat (limited to 'spec/outputs/destructure.lua')
-rw-r--r-- | spec/outputs/destructure.lua | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua index 2d0d46f..d8517a0 100644 --- a/spec/outputs/destructure.lua +++ b/spec/outputs/destructure.lua | |||
@@ -14,6 +14,31 @@ do | |||
14 | hello, world = _obj_0.hello, _obj_0.world | 14 | hello, world = _obj_0.hello, _obj_0.world |
15 | end | 15 | end |
16 | do | 16 | do |
17 | local x, a, b | ||
18 | do | ||
19 | local _obj_0, _obj_1 = f() | ||
20 | x = _obj_0 | ||
21 | a, b = _obj_1[1], _obj_1[2] | ||
22 | end | ||
23 | print(x, a, b) | ||
24 | end | ||
25 | do | ||
26 | local list = { | ||
27 | { | ||
28 | 1, | ||
29 | 2 | ||
30 | }, | ||
31 | { | ||
32 | 3, | ||
33 | 4 | ||
34 | } | ||
35 | } | ||
36 | local x, y | ||
37 | local _obj_0 = lume.first(list) | ||
38 | x, y = _obj_0[1], _obj_0[2] | ||
39 | list = lume.slice(list, 2) | ||
40 | end | ||
41 | do | ||
17 | local no, thing | 42 | local no, thing |
18 | do | 43 | do |
19 | local _obj_0 = world | 44 | local _obj_0 = world |
@@ -24,12 +49,12 @@ do | |||
24 | local _obj_0 = yeah | 49 | local _obj_0 = yeah |
25 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0.c, _obj_0.d | 50 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0.c, _obj_0.d |
26 | end | 51 | end |
27 | b = two | ||
28 | a = one[1] | 52 | a = one[1] |
29 | c = nil | 53 | b = two |
30 | b = one[1] | 54 | b = one[1] |
31 | local e = two | 55 | c = nil |
32 | d = one[1] | 56 | d = one[1] |
57 | local e = two | ||
33 | local x = one | 58 | local x = one |
34 | local y = two[1] | 59 | local y = two[1] |
35 | local xx, yy = 1, 2 | 60 | local xx, yy = 1, 2 |
@@ -46,9 +71,9 @@ do | |||
46 | a, b, c, d, e, f, g = _obj_0[1], _obj_0.b, _obj_0[2], _obj_0.d, _obj_0[3], _obj_0.f, _obj_0[4] | 71 | a, b, c, d, e, f, g = _obj_0[1], _obj_0.b, _obj_0[2], _obj_0.d, _obj_0[3], _obj_0.f, _obj_0[4] |
47 | end | 72 | end |
48 | do | 73 | do |
49 | c = nil | ||
50 | local _obj_0 = tbl | 74 | local _obj_0 = tbl |
51 | a, b = _obj_0.a, _obj_0.b | 75 | a, b = _obj_0.a, _obj_0.b |
76 | c = nil | ||
52 | end | 77 | end |
53 | do | 78 | do |
54 | a = tbl | 79 | a = tbl |
@@ -56,8 +81,8 @@ do | |||
56 | b, c = _obj_0.b, _obj_0.c | 81 | b, c = _obj_0.b, _obj_0.c |
57 | end | 82 | end |
58 | do | 83 | do |
59 | b = _ | ||
60 | a = tbl.a | 84 | a = tbl.a |
85 | b = _ | ||
61 | c = _.c | 86 | c = _.c |
62 | end | 87 | end |
63 | end | 88 | end |
@@ -211,8 +236,8 @@ do | |||
211 | end | 236 | end |
212 | one, two, three = _tbl_0.one, _tbl_0.two, _tbl_0.three | 237 | one, two, three = _tbl_0.one, _tbl_0.two, _tbl_0.three |
213 | end | 238 | end |
214 | b = 123 | ||
215 | a = (a["if"](a, 123) + t).a | 239 | a = (a["if"](a, 123) + t).a |
240 | b = 123 | ||
216 | end | 241 | end |
217 | do | 242 | do |
218 | local name, job | 243 | local name, job |
@@ -399,8 +424,7 @@ do | |||
399 | end | 424 | end |
400 | end | 425 | end |
401 | do | 426 | do |
402 | local x1, x2, x3, d, e | 427 | local x1, x2, x3, d, b, e |
403 | local b | ||
404 | do | 428 | do |
405 | local _obj_0, _obj_1, _obj_2, _obj_3, _obj_4 = f() | 429 | local _obj_0, _obj_1, _obj_2, _obj_3, _obj_4 = f() |
406 | do | 430 | do |
@@ -408,14 +432,15 @@ do | |||
408 | _obj_5[#_obj_5 + 1] = _obj_0 | 432 | _obj_5[#_obj_5 + 1] = _obj_0 |
409 | end | 433 | end |
410 | setmetatable(c, _obj_4) | 434 | setmetatable(c, _obj_4) |
411 | x1, x2, x3, d, e = 1, 2, 3, _obj_1, _obj_3 | 435 | x1, x2, x3, d = 1, 2, 3, _obj_1 |
412 | b = _obj_2[1] | 436 | b = _obj_2[1] |
437 | e = _obj_3 | ||
413 | end | 438 | end |
414 | local y1, y4 | 439 | local y1, y2, y3, y4 |
415 | local y2, y3 | ||
416 | local _obj_0, _obj_1 = f2() | 440 | local _obj_0, _obj_1 = f2() |
417 | y1, y4 = f1(), _obj_1 | 441 | y1 = f1() |
418 | y2, y3 = _obj_0.y2, _obj_0.y3 | 442 | y2, y3 = _obj_0.y2, _obj_0.y3 |
443 | y4 = _obj_1 | ||
419 | end | 444 | end |
420 | do | 445 | do |
421 | local v1, v2, v3, v4 | 446 | local v1, v2, v3, v4 |