From 0c589d36fadba92d547fc6a93a2d5494d4d51981 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Wed, 17 May 2023 15:05:25 +0800 Subject: added missing metamethod names check. --- src/yuescript/yue_compiler.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index b131eff..e97ec9f 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -72,7 +72,7 @@ static std::unordered_set Metamethods = { "close"s // Lua 5.4 }; -const std::string_view version = "0.16.4"sv; +const std::string_view version = "0.16.5"sv; const std::string_view extension = "yue"sv; class CompileError : public std::logic_error { @@ -4638,7 +4638,9 @@ private: auto meta = colon->name.to(); switch (meta->item->getId()) { case id(): { - auto newColon = toAst("\\__"s + _parser.toString(meta->item), x); + auto name = _parser.toString(meta->item); + checkMetamethod(name, meta->item); + auto newColon = toAst("\\__"s + name, x); chain->items.push_back(newColon); break; } @@ -4731,6 +4733,8 @@ private: auto meta = dot->name.to(); switch (meta->item->getId()) { case id(): { + auto name = _parser.toString(meta->item); + checkMetamethod(name, meta->item); auto newDot = toAst(".__"s + _parser.toString(meta->item), x); chain->items.push_back(newDot); break; -- cgit v1.2.3-55-g6feb