diff options
Diffstat (limited to '')
| -rwxr-xr-x | src/yuescript/yue_compiler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 21764fe..85aa6d4 100755 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp | |||
| @@ -56,7 +56,7 @@ using namespace parserlib; | |||
| 56 | 56 | ||
| 57 | typedef std::list<std::string> str_list; | 57 | typedef std::list<std::string> str_list; |
| 58 | 58 | ||
| 59 | const std::string_view version = "0.13.5"sv; | 59 | const std::string_view version = "0.13.6"sv; |
| 60 | const std::string_view extension = "yue"sv; | 60 | const std::string_view extension = "yue"sv; |
| 61 | 61 | ||
| 62 | class YueCompilerImpl { | 62 | class YueCompilerImpl { |
| @@ -7169,7 +7169,7 @@ private: | |||
| 7169 | temp.push_back(indent() + "local "s + tabCheckVar + " = \"table\" == "s + globalVar("type", branch) + '(' + objVar + ')' + nll(branch)); | 7169 | temp.push_back(indent() + "local "s + tabCheckVar + " = \"table\" == "s + globalVar("type", branch) + '(' + objVar + ')' + nll(branch)); |
| 7170 | } | 7170 | } |
| 7171 | std::string matchVar; | 7171 | std::string matchVar; |
| 7172 | bool lastBranch = branches.back() == branch_; | 7172 | bool lastBranch = branches.back() == branch_ && !switchNode->lastBranch; |
| 7173 | if (!lastBranch) { | 7173 | if (!lastBranch) { |
| 7174 | matchVar = getUnusedName("_match_"); | 7174 | matchVar = getUnusedName("_match_"); |
| 7175 | forceAddToScope(matchVar); | 7175 | forceAddToScope(matchVar); |
| @@ -7232,8 +7232,12 @@ private: | |||
| 7232 | } | 7232 | } |
| 7233 | } | 7233 | } |
| 7234 | if (switchNode->lastBranch) { | 7234 | if (switchNode->lastBranch) { |
| 7235 | temp.push_back(indent() + "else"s + nll(switchNode->lastBranch)); | 7235 | if (!firstBranch) { |
| 7236 | pushScope(); | 7236 | temp.push_back(indent() + "else"s + nll(switchNode->lastBranch)); |
| 7237 | pushScope(); | ||
| 7238 | } else { | ||
| 7239 | addScope--; | ||
| 7240 | } | ||
| 7237 | transform_plain_body(switchNode->lastBranch, temp, usage, assignList); | 7241 | transform_plain_body(switchNode->lastBranch, temp, usage, assignList); |
| 7238 | popScope(); | 7242 | popScope(); |
| 7239 | } | 7243 | } |
