Skip to content

Commit 45eb015

Browse files
committed
Fixed issue #201.
1 parent 577c291 commit 45eb015

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/yuescript/yue_compiler.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ static std::unordered_set<std::string> Metamethods = {
7575
"close"s // Lua 5.4
7676
};
7777

78-
const std::string_view version = "0.27.2"sv;
78+
const std::string_view version = "0.27.3"sv;
7979
const std::string_view extension = "yue"sv;
8080

8181
class CompileError : public std::logic_error {
@@ -4795,8 +4795,8 @@ class YueCompilerImpl {
47954795
auto varName = variableToString(ast_to<Variable_t>(var));
47964796
auto closeVar = getUnusedName("_close_"sv);
47974797
addToScope(closeVar);
4798-
getCloses.push_back(closeVar + "=assert "s + varName + ".<close>"s);
4799-
doCloses.push_front(closeVar + ' ' + varName);
4798+
getCloses.push_back(closeVar + "=if type("s + varName + ") in ['table', 'userdata'] then assert "s + varName + ".<> and "s + varName +".<close>, \""s + "variable '"s + varName + "' got a non-closable value\" elseif "s + varName + " == nil then nil else error \""s + "variable '"s + varName + "' got a non-closable value\"");
4799+
doCloses.push_front(closeVar + "? "s + varName);
48004800
}
48014801
popScope();
48024802
auto okVar = getUnusedName("_ok_"sv);

0 commit comments

Comments
 (0)