From 54724743272ac4da212e814c3c7daf8f8abf6de0 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Tue, 15 Feb 2022 10:11:41 +0800 Subject: fix an extra global check case. --- spec/inputs/cond.yue | 8 ++++++++ spec/outputs/cond.lua | 14 ++++++++++++++ src/yuescript/yue_compiler.cpp | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/spec/inputs/cond.yue b/spec/inputs/cond.yue index d33eec4..42b22a7 100644 --- a/spec/inputs/cond.yue +++ b/spec/inputs/cond.yue @@ -200,6 +200,14 @@ do elseif c d: e = tb +if :pi = math + print pi + +do + local math + if :pi = math + print pi + nil diff --git a/spec/outputs/cond.lua b/spec/outputs/cond.lua index 8f69e97..4dc5aa5 100644 --- a/spec/outputs/cond.lua +++ b/spec/outputs/cond.lua @@ -299,4 +299,18 @@ do local e = tb.d end end +do + local _des_0 = math + if _des_0 then + local pi = _des_0.pi + print(pi) + end +end +do + local math + if math then + local pi = math.pi + print(pi) + end +end return nil diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 6c8e167..fbb3fb5 100755 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -2259,7 +2259,7 @@ private: auto desVar = getUnusedName("_des_"sv); if (assign->values.objects().size() == 1) { auto var = singleVariableFrom(assign->values.objects().front()); - if (!var.empty()) { + if (!var.empty() && isLocal(var)) { desVar = var; storingValue = false; } -- cgit v1.2.3-55-g6feb