aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/assign.lua
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-09-04 12:16:10 +0800
committerLi Jin <dragon-fly@qq.com>2024-09-04 12:16:25 +0800
commit461bf7c32408553125d71b23e04e21fed690c4f5 (patch)
tree4442efd0fc2524e82be63e12e3e046a0532b26dd /spec/outputs/assign.lua
parent2f8215df7288e0aac690c8e8b1ff79865f114302 (diff)
downloadyuescript-0.25.1.tar.gz
yuescript-0.25.1.tar.bz2
yuescript-0.25.1.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.lua97
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