diff options
| author | Li Jin <dragon-fly@qq.com> | 2024-09-04 12:16:10 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2024-09-04 12:16:25 +0800 |
| commit | 461bf7c32408553125d71b23e04e21fed690c4f5 (patch) | |
| tree | 4442efd0fc2524e82be63e12e3e046a0532b26dd /spec/outputs/assign.lua | |
| parent | 2f8215df7288e0aac690c8e8b1ff79865f114302 (diff) | |
| download | yuescript-461bf7c32408553125d71b23e04e21fed690c4f5.tar.gz yuescript-461bf7c32408553125d71b23e04e21fed690c4f5.tar.bz2 yuescript-461bf7c32408553125d71b23e04e21fed690c4f5.zip | |
fix more cases for evaluation order of multi-value assignments.v0.25.1
Diffstat (limited to 'spec/outputs/assign.lua')
| -rw-r--r-- | spec/outputs/assign.lua | 97 |
1 files changed, 71 insertions, 26 deletions
diff --git a/spec/outputs/assign.lua b/spec/outputs/assign.lua index 1978df1..162a563 100644 --- a/spec/outputs/assign.lua +++ b/spec/outputs/assign.lua | |||
| @@ -67,50 +67,95 @@ return _(function() | |||
| 67 | end | 67 | end |
| 68 | do | 68 | do |
| 69 | local a | 69 | local a |
| 70 | local _obj_0, _obj_1 | ||
| 70 | if x then | 71 | if x then |
| 71 | local _exp_0 = y | 72 | local _exp_0 = y |
| 72 | if 1 == _exp_0 then | 73 | if 1 == _exp_0 then |
| 73 | local _obj_0, _obj_1 = f() | 74 | _obj_0, _obj_1 = f() |
| 74 | b[#b + 1] = _obj_1 | ||
| 75 | a = _obj_0 | ||
| 76 | end | 75 | end |
| 77 | end | 76 | end |
| 77 | a = _obj_0 | ||
| 78 | b[#b + 1] = _obj_1 | ||
| 78 | end | 79 | end |
| 79 | do | 80 | do |
| 80 | local a, b | 81 | local a, b |
| 82 | local _obj_0, _obj_1 | ||
| 81 | if x then | 83 | if x then |
| 82 | local _obj_0, _obj_1 = f() | 84 | _obj_0, _obj_1 = f() |
| 85 | else | ||
| 86 | _obj_0, _obj_1 = 123, tb | ||
| 87 | end | ||
| 88 | a = _obj_0 | ||
| 89 | b = _obj_1[1] | ||
| 90 | end | ||
| 91 | do | ||
| 92 | local a | ||
| 93 | do | ||
| 94 | local _obj_0, _obj_1 | ||
| 95 | if x then | ||
| 96 | local _exp_0 = y | ||
| 97 | if 1 == _exp_0 then | ||
| 98 | _obj_0, _obj_1 = f() | ||
| 99 | end | ||
| 100 | end | ||
| 101 | a = _obj_0 | ||
| 102 | b[#b + 1] = _obj_1 | ||
| 103 | end | ||
| 104 | print(a, b) | ||
| 105 | end | ||
| 106 | do | ||
| 107 | local a, b | ||
| 108 | do | ||
| 109 | local _obj_0, _obj_1 | ||
| 110 | if x then | ||
| 111 | _obj_0, _obj_1 = f() | ||
| 112 | else | ||
| 113 | _obj_0, _obj_1 = 123, tb | ||
| 114 | end | ||
| 83 | a = _obj_0 | 115 | a = _obj_0 |
| 84 | b = _obj_1[1] | 116 | b = _obj_1[1] |
| 85 | else | ||
| 86 | a = 123 | ||
| 87 | b = tb[1] | ||
| 88 | end | 117 | end |
| 118 | print(a, b) | ||
| 89 | end | 119 | end |
| 90 | do | 120 | do |
| 91 | local a, c | 121 | local a, c |
| 92 | if x then | 122 | do |
| 93 | local _exp_0 = y | 123 | local _obj_0, _obj_1, _obj_2, _obj_3 |
| 94 | if 1 == _exp_0 then | 124 | if x then |
| 95 | local _obj_0, _obj_1, _obj_2, _obj_3 = f() | 125 | local _exp_0 = y |
| 96 | b[#b + 1] = _obj_1 | 126 | if 1 == _exp_0 then |
| 97 | a, c, getmetatable(d).__add = _obj_0, _obj_2, _obj_3 | 127 | _obj_0, _obj_1, _obj_2, _obj_3 = f() |
| 98 | end | 128 | end |
| 99 | elseif x2 then | 129 | elseif x2 then |
| 100 | if y2 then | 130 | if y2 then |
| 101 | local _obj_0, _obj_1, _obj_2, _obj_3 = f1() | 131 | _obj_0, _obj_1, _obj_2, _obj_3 = f1() |
| 102 | b[#b + 1] = _obj_1 | 132 | end |
| 103 | a, c, getmetatable(d).__add = _obj_0, _obj_2, _obj_3 | 133 | else |
| 134 | print("hello") | ||
| 135 | do | ||
| 136 | print(123) | ||
| 137 | _obj_0, _obj_1, _obj_2, _obj_3 = 1, f2() | ||
| 138 | end | ||
| 104 | end | 139 | end |
| 105 | else | 140 | a = _obj_0 |
| 106 | print("hello") | 141 | b[#b + 1] = _obj_1 |
| 107 | do | 142 | c, getmetatable(d).__add = _obj_2, _obj_3 |
| 108 | print(123) | 143 | end |
| 109 | local _obj_0, _obj_1, _obj_2 = f2() | 144 | print(a, b, c, d) |
| 110 | b[#b + 1] = _obj_0 | 145 | end |
| 111 | a, c, getmetatable(d).__add = 1, _obj_1, _obj_2 | 146 | do |
| 147 | local x, a, b | ||
| 148 | do | ||
| 149 | local _obj_0, _obj_1, _obj_2 | ||
| 150 | if cond then | ||
| 151 | _obj_0, _obj_1, _obj_2 = f() | ||
| 112 | end | 152 | end |
| 153 | x = 1 | ||
| 154 | a, b = _obj_0[1], _obj_0[2] | ||
| 155 | setmetatable(tb, _obj_1) | ||
| 156 | c[#c + 1] = _obj_2 | ||
| 113 | end | 157 | end |
| 158 | print(x, a, b) | ||
| 114 | end | 159 | end |
| 115 | do | 160 | do |
| 116 | local a = 0 | 161 | local a = 0 |
