summaryrefslogtreecommitdiff
path: root/src/yuescript/yue_compiler.cpp
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2021-04-27 20:39:26 +0800
committerLi Jin <dragon-fly@qq.com>2021-04-27 20:39:26 +0800
commit4713aeb776489b0dfcf965951a5b8ebbd8fa9581 (patch)
treef9edbf8c4003fdd9f7c43521ba37c02f70e35c19 /src/yuescript/yue_compiler.cpp
parent1cccc82917066556eb8a825bbe7097aefd9541dd (diff)
downloadyuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.tar.gz
yuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.tar.bz2
yuescript-4713aeb776489b0dfcf965951a5b8ebbd8fa9581.zip
fix const variable declaration with global statement.
Diffstat (limited to '')
-rw-r--r--src/yuescript/yue_compiler.cpp6
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>();