aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-10-08 17:58:49 +0800
committerLi Jin <dragon-fly@qq.com>2024-10-08 17:58:49 +0800
commit05da3cbfa3689e6c229c41156d0dd08ab554cd77 (patch)
tree97eb63ae37ac36a41bbf8a6a02f3a838d089d600
parent91ca3bfacc2b3f5516a519c939814d7462f73141 (diff)
downloadyuescript-05da3cbfa3689e6c229c41156d0dd08ab554cd77.tar.gz
yuescript-05da3cbfa3689e6c229c41156d0dd08ab554cd77.tar.bz2
yuescript-05da3cbfa3689e6c229c41156d0dd08ab554cd77.zip
Fixed a miss indent and removed an unnecessary do block.v0.25.5
-rw-r--r--spec/inputs/with.yue5
-rw-r--r--spec/outputs/unicode/with.lua4
-rw-r--r--spec/outputs/with.lua11
-rw-r--r--src/yuescript/yue_compiler.cpp5
4 files changed, 16 insertions, 9 deletions
diff --git a/spec/inputs/with.yue b/spec/inputs/with.yue
index 5da0980..19b7be1 100644
--- a/spec/inputs/with.yue
+++ b/spec/inputs/with.yue
@@ -147,4 +147,9 @@ do
147 .touchEnabled = true 147 .touchEnabled = true
148 .swallowTouches = true 148 .swallowTouches = true
149 149
150do
151 f = ->
152 return with {}
153 return [123]
154
150nil 155nil
diff --git a/spec/outputs/unicode/with.lua b/spec/outputs/unicode/with.lua
index cfad264..7a5ba00 100644
--- a/spec/outputs/unicode/with.lua
+++ b/spec/outputs/unicode/with.lua
@@ -123,9 +123,7 @@ do
123 local _ 123 local _
124 _ = function() 124 _ = function()
125 local _with_0 = _u55e8 125 local _with_0 = _u55e8
126 do 126 return _with_0.a, _with_0.b
127 return _with_0.a, _with_0.b
128 end
129 end 127 end
130end 128end
131do 129do
diff --git a/spec/outputs/with.lua b/spec/outputs/with.lua
index d880d1e..5d33bdb 100644
--- a/spec/outputs/with.lua
+++ b/spec/outputs/with.lua
@@ -121,9 +121,7 @@ do
121 local _ 121 local _
122 _ = function() 122 _ = function()
123 local _with_0 = hi 123 local _with_0 = hi
124 do 124 return _with_0.a, _with_0.b
125 return _with_0.a, _with_0.b
126 end
127 end 125 end
128end 126end
129do 127do
@@ -184,4 +182,11 @@ do
184 mask.swallowTouches = true 182 mask.swallowTouches = true
185 end 183 end
186end 184end
185do
186 local f
187 f = function()
188 local _with_0 = { }
189 return _with_0[123]
190 end
191end
187return nil 192return nil
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp
index b7e09d3..c29513e 100644
--- a/src/yuescript/yue_compiler.cpp
+++ b/src/yuescript/yue_compiler.cpp
@@ -75,7 +75,7 @@ static std::unordered_set<std::string> Metamethods = {
75 "close"s // Lua 5.4 75 "close"s // Lua 5.4
76}; 76};
77 77
78const std::string_view version = "0.25.4"sv; 78const std::string_view version = "0.25.5"sv;
79const std::string_view extension = "yue"sv; 79const std::string_view extension = "yue"sv;
80 80
81class CompileError : public std::logic_error { 81class CompileError : public std::logic_error {
@@ -9174,7 +9174,7 @@ private:
9174 transformIf(ifNode, temp, ExpUsage::Common); 9174 transformIf(ifNode, temp, ExpUsage::Common);
9175 } else { 9175 } else {
9176 bool transformed = false; 9176 bool transformed = false;
9177 if (assignList || returnValue) { 9177 if (!extraScope && assignList) {
9178 if (auto block = with->body.as<Block_t>()) { 9178 if (auto block = with->body.as<Block_t>()) {
9179 if (!block->statements.empty()) { 9179 if (!block->statements.empty()) {
9180 Statement_t* stmt = static_cast<Statement_t*>(block->statements.back()); 9180 Statement_t* stmt = static_cast<Statement_t*>(block->statements.back());
@@ -9199,7 +9199,6 @@ private:
9199 auto doNode = stmt->new_ptr<Do_t>(); 9199 auto doNode = stmt->new_ptr<Do_t>();
9200 doNode->body.set(newBody); 9200 doNode->body.set(newBody);
9201 transformDo(doNode, temp, ExpUsage::Common); 9201 transformDo(doNode, temp, ExpUsage::Common);
9202 temp.back().insert(0, indent());
9203 transformed = true; 9202 transformed = true;
9204 } 9203 }
9205 } 9204 }