diff options
author | Li Jin <dragon-fly@qq.com> | 2021-04-27 20:39:26 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2021-04-27 20:39:26 +0800 |
commit | 4713aeb776489b0dfcf965951a5b8ebbd8fa9581 (patch) | |
tree | f9edbf8c4003fdd9f7c43521ba37c02f70e35c19 | |
parent | 1cccc82917066556eb8a825bbe7097aefd9541dd (diff) | |
download | yuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.tar.gz yuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.tar.bz2 yuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.zip |
fix const variable declaration with global statement.
-rw-r--r-- | src/yuescript/yue_compiler.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 1b5a17c..fcfd15a 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp | |||
@@ -5913,16 +5913,20 @@ private: | |||
5913 | str_list vars; | 5913 | str_list vars; |
5914 | for (auto name : localAttrib->nameList->names.objects()) { | 5914 | for (auto name : localAttrib->nameList->names.objects()) { |
5915 | vars.push_back(_parser.toString(name)); | 5915 | vars.push_back(_parser.toString(name)); |
5916 | forceAddToScope(vars.back()); | ||
5916 | } | 5917 | } |
5918 | str_list temp; | ||
5917 | auto varStr = join(vars, ", "sv); | 5919 | auto varStr = join(vars, ", "sv); |
5920 | temp.push_back(s("local "sv) + varStr + nll(x)); | ||
5918 | auto varList = toAst<ExpList_t>(varStr, x); | 5921 | auto varList = toAst<ExpList_t>(varStr, x); |
5919 | auto assignment = x->new_ptr<ExpListAssign_t>(); | 5922 | auto assignment = x->new_ptr<ExpListAssign_t>(); |
5920 | assignment->expList.set(varList); | 5923 | assignment->expList.set(varList); |
5921 | assignment->action.set(localAttrib->assign); | 5924 | assignment->action.set(localAttrib->assign); |
5922 | transformAssignment(assignment, out); | 5925 | transformAssignment(assignment, temp); |
5923 | for (const auto& var : vars) { | 5926 | for (const auto& var : vars) { |
5924 | markVarConst(var); | 5927 | markVarConst(var); |
5925 | } | 5928 | } |
5929 | out.push_back(join(temp)); | ||
5926 | return; | 5930 | return; |
5927 | } | 5931 | } |
5928 | auto expList = x->new_ptr<ExpList_t>(); | 5932 | auto expList = x->new_ptr<ExpList_t>(); |