From cf7574a713b3dcc0b1c103ee309919d3f5c1bbd3 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Wed, 28 Apr 2021 11:24:19 +0800 Subject: make const check work with class declaration. --- src/yuescript/yue_compiler.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index fcfd15a..a8d8053 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -4778,8 +4778,11 @@ private: _buf << indent(1) << parentVar << ".__inherited("sv << parentVar << ", "sv << classVar << ")"sv << nll(classDecl); _buf << indent() << "end"sv << nll(classDecl); } - if (!assignItem.empty()) { - _buf << indent() << assignItem << " = "sv << classVar << nll(classDecl); + if (!assignItem.empty()) { + auto assignment = toAst(assignItem + s(" = "sv) + classVar, classDecl); + str_list temp; + transformAssignment(assignment, temp); + _buf << indent() << temp.back() << nll(classDecl); } switch (usage) { case ExpUsage::Return: { @@ -5369,7 +5372,7 @@ private: kv.push_back(valVar); } _buf << indent(int(temp.size()) - 1) << tbl << "["sv << kv.front() << "] = "sv << kv.back() << nll(comp); - for (int ind = int(temp.size()) - 2; ind > -1 ; --ind) { + for (int ind = int(temp.size()) - 2; ind > -1; --ind) { _buf << indent(ind) << "end"sv << nll(comp); } popScope(); -- cgit v1.2.3-55-g6feb