From 103fd0646eb83898b37398731f90e2dc277ac2d8 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Wed, 30 Aug 2023 09:14:22 +0800 Subject: fix inline variable renaming. --- spec/outputs/import.lua | 10 +++++----- spec/outputs/unicode/import.lua | 10 +++++----- src/yuescript/yue_compiler.cpp | 2 +- src/yuescript/yue_parser.cpp | 3 ++- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/spec/outputs/import.lua b/spec/outputs/import.lua index 19d332a..02fe42a 100644 --- a/spec/outputs/import.lua +++ b/spec/outputs/import.lua @@ -1,8 +1,8 @@ local hello = yeah.hello local holla, world do - local _obj_0 = table["cool"] - holla, world = _obj_0.holla, _obj_0.world + local _obj_1 = table["cool"] + holla, world = _obj_1.holla, _obj_1.world end local x, y, z = items.x, (function() local _base_0 = items @@ -13,9 +13,9 @@ local x, y, z = items.x, (function() end)(), items.z local master, ghost do - local _obj_0 = find("mytable") - master, ghost = _obj_0.master, (function() - local _base_0 = _obj_0 + local _obj_1 = find("mytable") + master, ghost = _obj_1.master, (function() + local _base_0 = _obj_1 local _fn_0 = _base_0.ghost return _fn_0 and function(...) return _fn_0(_base_0, ...) diff --git a/spec/outputs/unicode/import.lua b/spec/outputs/unicode/import.lua index 50acc11..3499295 100644 --- a/spec/outputs/unicode/import.lua +++ b/spec/outputs/unicode/import.lua @@ -1,8 +1,8 @@ local _u4f60_u597d = _u597d_u7684["你好"] local _u597d_u5440, _u4e16_u754c do - local _obj_0 = _u8868["酷"] - _u597d_u5440, _u4e16_u754c = _obj_0["好呀"], _obj_0["世界"] + local _obj_1 = _u8868["酷"] + _u597d_u5440, _u4e16_u754c = _obj_1["好呀"], _obj_1["世界"] end local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x"], (function() local _base_0 = _u9053_u5177_u7ec4 @@ -13,9 +13,9 @@ local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x" end)(), _u9053_u5177_u7ec4["字段z"] local _u9886_u4e3b, _ud83d_udc7b do - local _obj_0 = _u627e_u5230("我的表") - _u9886_u4e3b, _ud83d_udc7b = _obj_0["领主"], (function() - local _base_0 = _obj_0 + local _obj_1 = _u627e_u5230("我的表") + _u9886_u4e3b, _ud83d_udc7b = _obj_1["领主"], (function() + local _base_0 = _obj_1 local _fn_0 = _base_0["👻"] return _fn_0 and function(...) return _fn_0(_base_0, ...) diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 40f12af..42b92a4 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -74,7 +74,7 @@ static std::unordered_set Metamethods = { "close"s // Lua 5.4 }; -const std::string_view version = "0.19.1"sv; +const std::string_view version = "0.19.2"sv; const std::string_view extension = "yue"sv; class CompileError : public std::logic_error { diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp index ea45e85..ff7660a 100644 --- a/src/yuescript/yue_parser.cpp +++ b/src/yuescript/yue_parser.cpp @@ -974,12 +974,13 @@ ParseInfo YueParser::parse(std::string_view codes, rule& r) { moduleName = moduleStr + std::to_string(index); index++; } while (state.usedNames.find(moduleName) != state.usedNames.end()); + state.usedNames.insert(moduleName); res.moduleName = moduleName; - res.usedNames = std::move(state.usedNames); res.exportDefault = state.exportDefault; res.exportMacro = state.exportMacro; res.exportMetatable = !state.exportMetatable && state.exportMetamethod; } + res.usedNames = std::move(state.usedNames); } catch (const ParserError& err) { res.error = {err.what(), err.line, err.col}; return res; -- cgit v1.2.3-55-g6feb