aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2023-08-30 09:14:22 +0800
committerLi Jin <dragon-fly@qq.com>2023-08-30 09:14:22 +0800
commit103fd0646eb83898b37398731f90e2dc277ac2d8 (patch)
tree8df80ca45af367df676f322bde03883fbb93df62
parented718b7b6754379b9471830b1cc5241a2fd0f941 (diff)
downloadyuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.tar.gz
yuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.tar.bz2
yuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.zip
fix inline variable renaming.v0.19.2
-rw-r--r--spec/outputs/import.lua10
-rw-r--r--spec/outputs/unicode/import.lua10
-rw-r--r--src/yuescript/yue_compiler.cpp2
-rw-r--r--src/yuescript/yue_parser.cpp3
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 @@
1local hello = yeah.hello 1local hello = yeah.hello
2local holla, world 2local holla, world
3do 3do
4 local _obj_0 = table["cool"] 4 local _obj_1 = table["cool"]
5 holla, world = _obj_0.holla, _obj_0.world 5 holla, world = _obj_1.holla, _obj_1.world
6end 6end
7local x, y, z = items.x, (function() 7local x, y, z = items.x, (function()
8 local _base_0 = items 8 local _base_0 = items
@@ -13,9 +13,9 @@ local x, y, z = items.x, (function()
13end)(), items.z 13end)(), items.z
14local master, ghost 14local master, ghost
15do 15do
16 local _obj_0 = find("mytable") 16 local _obj_1 = find("mytable")
17 master, ghost = _obj_0.master, (function() 17 master, ghost = _obj_1.master, (function()
18 local _base_0 = _obj_0 18 local _base_0 = _obj_1
19 local _fn_0 = _base_0.ghost 19 local _fn_0 = _base_0.ghost
20 return _fn_0 and function(...) 20 return _fn_0 and function(...)
21 return _fn_0(_base_0, ...) 21 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 @@
1local _u4f60_u597d = _u597d_u7684["你好"] 1local _u4f60_u597d = _u597d_u7684["你好"]
2local _u597d_u5440, _u4e16_u754c 2local _u597d_u5440, _u4e16_u754c
3do 3do
4 local _obj_0 = _u8868["酷"] 4 local _obj_1 = _u8868["酷"]
5 _u597d_u5440, _u4e16_u754c = _obj_0["好呀"], _obj_0["世界"] 5 _u597d_u5440, _u4e16_u754c = _obj_1["好呀"], _obj_1["世界"]
6end 6end
7local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x"], (function() 7local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x"], (function()
8 local _base_0 = _u9053_u5177_u7ec4 8 local _base_0 = _u9053_u5177_u7ec4
@@ -13,9 +13,9 @@ local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x"
13end)(), _u9053_u5177_u7ec4["字段z"] 13end)(), _u9053_u5177_u7ec4["字段z"]
14local _u9886_u4e3b, _ud83d_udc7b 14local _u9886_u4e3b, _ud83d_udc7b
15do 15do
16 local _obj_0 = _u627e_u5230("我的表") 16 local _obj_1 = _u627e_u5230("我的表")
17 _u9886_u4e3b, _ud83d_udc7b = _obj_0["领主"], (function() 17 _u9886_u4e3b, _ud83d_udc7b = _obj_1["领主"], (function()
18 local _base_0 = _obj_0 18 local _base_0 = _obj_1
19 local _fn_0 = _base_0["👻"] 19 local _fn_0 = _base_0["👻"]
20 return _fn_0 and function(...) 20 return _fn_0 and function(...)
21 return _fn_0(_base_0, ...) 21 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<std::string> Metamethods = {
74 "close"s // Lua 5.4 74 "close"s // Lua 5.4
75}; 75};
76 76
77const std::string_view version = "0.19.1"sv; 77const std::string_view version = "0.19.2"sv;
78const std::string_view extension = "yue"sv; 78const std::string_view extension = "yue"sv;
79 79
80class CompileError : public std::logic_error { 80class 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) {
974 moduleName = moduleStr + std::to_string(index); 974 moduleName = moduleStr + std::to_string(index);
975 index++; 975 index++;
976 } while (state.usedNames.find(moduleName) != state.usedNames.end()); 976 } while (state.usedNames.find(moduleName) != state.usedNames.end());
977 state.usedNames.insert(moduleName);
977 res.moduleName = moduleName; 978 res.moduleName = moduleName;
978 res.usedNames = std::move(state.usedNames);
979 res.exportDefault = state.exportDefault; 979 res.exportDefault = state.exportDefault;
980 res.exportMacro = state.exportMacro; 980 res.exportMacro = state.exportMacro;
981 res.exportMetatable = !state.exportMetatable && state.exportMetamethod; 981 res.exportMetatable = !state.exportMetatable && state.exportMetamethod;
982 } 982 }
983 res.usedNames = std::move(state.usedNames);
983 } catch (const ParserError& err) { 984 } catch (const ParserError& err) {
984 res.error = {err.what(), err.line, err.col}; 985 res.error = {err.what(), err.line, err.col};
985 return res; 986 return res;