From 5ef5cff3efd030eb440133b5e4b2925bb9fe8ead Mon Sep 17 00:00:00 2001 From: Li Jin Date: Mon, 5 Feb 2024 14:52:29 +0800 Subject: fix an empty check case. --- src/yuescript/yue_compiler.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 5cdbfda..30800e6 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.21.7"sv; +const std::string_view version = "0.21.8"sv; const std::string_view extension = "yue"sv; class CompileError : public std::logic_error { @@ -6162,10 +6162,14 @@ private: if (unary_exp->inExp->not_) { _buf << "not ("sv; } - for (const auto& exp : tmp) { - _buf << exp << " == "sv << newVar; - if (exp != tmp.back()) { - _buf << " or "sv; + if (tmp.empty()) { + _buf << "false"sv; + } else { + for (const auto& exp : tmp) { + _buf << exp << " == "sv << newVar; + if (exp != tmp.back()) { + _buf << " or "sv; + } } } if (unary_exp->inExp->not_) { @@ -6203,10 +6207,14 @@ private: _buf << "not "sv; } _buf << '('; - for (const auto& exp : tmp) { - _buf << exp << " == "sv << varName; - if (exp != tmp.back()) { - _buf << " or "sv; + if (tmp.empty()) { + _buf << "false"sv; + } else { + for (const auto& exp : tmp) { + _buf << exp << " == "sv << varName; + if (exp != tmp.back()) { + _buf << " or "sv; + } } } _buf << ')'; -- cgit v1.2.3-55-g6feb