summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_parser.cpp
diff options
context:
space:
mode:
authorGeorge Marques <george@gmarqu.es>2020-08-17 21:30:39 -0300
committerGeorge Marques <george@gmarqu.es>2020-08-17 21:30:39 -0300
commit3abb3c0d6e9e81d3ed171162cc5ce2bbe58296e0 (patch)
tree38b0b7221a0f656447ab4bd0b31aeb5a83a9eadf /modules/gdscript/gdscript_parser.cpp
parentfda6f3b600e124d9fefa3886d2feba1ce32db99f (diff)
downloadredot-engine-3abb3c0d6e9e81d3ed171162cc5ce2bbe58296e0.tar.gz
GDScript: Fix crash when superclass file is non-existent
Incidentally, allow EOF to be an end of statement.
Diffstat (limited to 'modules/gdscript/gdscript_parser.cpp')
-rw-r--r--modules/gdscript/gdscript_parser.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index d1ba8cd84d..c9868cd80b 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -466,17 +466,17 @@ void GDScriptParser::pop_multiline() {
}
bool GDScriptParser::is_statement_end() {
- return check(GDScriptTokenizer::Token::NEWLINE) || check(GDScriptTokenizer::Token::SEMICOLON);
+ return check(GDScriptTokenizer::Token::NEWLINE) || check(GDScriptTokenizer::Token::SEMICOLON) || check(GDScriptTokenizer::Token::TK_EOF);
}
void GDScriptParser::end_statement(const String &p_context) {
bool found = false;
- while (is_statement_end()) {
+ while (is_statement_end() && !is_at_end()) {
// Remove sequential newlines/semicolons.
found = true;
advance();
}
- if (!found) {
+ if (!found && !is_at_end()) {
push_error(vformat(R"(Expected end of statement after %s, found "%s" instead.)", p_context, current.get_name()));
}
}