diff options
author | Li Jin <dragon-fly@qq.com> | 2023-08-30 09:14:22 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2023-08-30 09:14:22 +0800 |
commit | 103fd0646eb83898b37398731f90e2dc277ac2d8 (patch) | |
tree | 8df80ca45af367df676f322bde03883fbb93df62 | |
parent | ed718b7b6754379b9471830b1cc5241a2fd0f941 (diff) | |
download | yuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.tar.gz yuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.tar.bz2 yuescript-103fd0646eb83898b37398731f90e2dc277ac2d8.zip |
fix inline variable renaming.v0.19.2
-rw-r--r-- | spec/outputs/import.lua | 10 | ||||
-rw-r--r-- | spec/outputs/unicode/import.lua | 10 | ||||
-rw-r--r-- | src/yuescript/yue_compiler.cpp | 2 | ||||
-rw-r--r-- | 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 @@ | |||
1 | local hello = yeah.hello | 1 | local hello = yeah.hello |
2 | local holla, world | 2 | local holla, world |
3 | do | 3 | do |
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 |
6 | end | 6 | end |
7 | local x, y, z = items.x, (function() | 7 | local 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() | |||
13 | end)(), items.z | 13 | end)(), items.z |
14 | local master, ghost | 14 | local master, ghost |
15 | do | 15 | do |
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 @@ | |||
1 | local _u4f60_u597d = _u597d_u7684["你好"] | 1 | local _u4f60_u597d = _u597d_u7684["你好"] |
2 | local _u597d_u5440, _u4e16_u754c | 2 | local _u597d_u5440, _u4e16_u754c |
3 | do | 3 | do |
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["世界"] |
6 | end | 6 | end |
7 | local _u5b57_u6bb5x, _u5b57_u6bb5y, _u5b57_u6bb5z = _u9053_u5177_u7ec4["字段x"], (function() | 7 | local _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" | |||
13 | end)(), _u9053_u5177_u7ec4["字段z"] | 13 | end)(), _u9053_u5177_u7ec4["字段z"] |
14 | local _u9886_u4e3b, _ud83d_udc7b | 14 | local _u9886_u4e3b, _ud83d_udc7b |
15 | do | 15 | do |
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 | ||
77 | const std::string_view version = "0.19.1"sv; | 77 | const std::string_view version = "0.19.2"sv; |
78 | const std::string_view extension = "yue"sv; | 78 | const std::string_view extension = "yue"sv; |
79 | 79 | ||
80 | class CompileError : public std::logic_error { | 80 | 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) { | |||
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; |