From cf91f61990babdd8a80774809e9e860a155e4201 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 30 Jan 2025 13:46:12 +0800 Subject: Fixed one more case for issue #185. --- spec/inputs/in_expression.yue | 4 ++++ spec/outputs/in_expression.lua | 10 ++++++++++ src/yuescript/yue_compiler.cpp | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/spec/inputs/in_expression.yue b/spec/inputs/in_expression.yue index 0393881..f34a4ad 100644 --- a/spec/inputs/in_expression.yue +++ b/spec/inputs/in_expression.yue @@ -89,5 +89,9 @@ do b = 1 print a in [b, 10, b] +do + print x in ["", ""] + print 1 in [1, 2, 1] + nil diff --git a/spec/outputs/in_expression.lua b/spec/outputs/in_expression.lua index 6fbbf91..0778c8e 100644 --- a/spec/outputs/in_expression.lua +++ b/spec/outputs/in_expression.lua @@ -226,4 +226,14 @@ do local b = 1 print((b == a or 10 == a or b == a)) end +do + print((function() + local _val_0 = x + return "" == _val_0 or "" == _val_0 + end)()) + print((function() + local _val_0 = 1 + return 1 == _val_0 or 2 == _val_0 or 1 == _val_0 + end)()) +end return nil diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index eb12b3f..369f7e8 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -75,7 +75,7 @@ static std::unordered_set Metamethods = { "close"s // Lua 5.4 }; -const std::string_view version = "0.26.2"sv; +const std::string_view version = "0.26.3"sv; const std::string_view extension = "yue"sv; class CompileError : public std::logic_error { @@ -7031,7 +7031,7 @@ private: } else { for (const auto& exp : tmp) { _buf << exp << " == "sv << newVar; - if (exp != tmp.back()) { + if (&exp != &tmp.back()) { _buf << " or "sv; } } -- cgit v1.2.3-55-g6feb