aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2025-05-21 16:19:10 +0800
committerLi Jin <dragon-fly@qq.com>2025-05-21 16:19:10 +0800
commit040f6802ef02f6541e0213de0440f9b1b758d9fc (patch)
tree2fa5318eb3eb1192ac6d3c15a5340e3b37e1fae3 /src
parent68f4b638d40bc31b24509283da309b8aef3fe758 (diff)
downloadyuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.tar.gz
yuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.tar.bz2
yuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.zip
Added support for mark global var const without initial value.
Diffstat (limited to 'src')
-rw-r--r--src/yuescript/yue_compiler.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp
index 452ffbd..5cd2804 100644
--- a/src/yuescript/yue_compiler.cpp
+++ b/src/yuescript/yue_compiler.cpp
@@ -78,7 +78,7 @@ static std::unordered_set<std::string> Metamethods = {
78 "close"s // Lua 5.4 78 "close"s // Lua 5.4
79}; 79};
80 80
81const std::string_view version = "0.28.0"sv; 81const std::string_view version = "0.28.1"sv;
82const std::string_view extension = "yue"sv; 82const std::string_view extension = "yue"sv;
83 83
84class CompileError : public std::logic_error { 84class CompileError : public std::logic_error {
@@ -9569,12 +9569,13 @@ private:
9569 markVarGlobalConst(name); 9569 markVarGlobalConst(name);
9570 } 9570 }
9571 } else { 9571 } else {
9572 if (global->constAttrib) {
9573 throw CompileError("missing initial value for global const", global->constAttrib);
9574 }
9575 for (auto name : values->nameList->names.objects()) { 9572 for (auto name : values->nameList->names.objects()) {
9576 auto var = static_cast<Variable_t*>(name); 9573 auto var = static_cast<Variable_t*>(name);
9577 addGlobalVar(variableToString(var), var); 9574 auto varName = variableToString(var);
9575 addGlobalVar(varName, var);
9576 if (global->constAttrib) {
9577 markVarGlobalConst(varName);
9578 }
9578 } 9579 }
9579 } 9580 }
9580 break; 9581 break;