Browse Source

GDScript: Show error when missing expression after ternary else

George Marques 4 years ago
parent
commit
107af38fd1

+ 4 - 0
modules/gdscript/gdscript_parser.cpp

@@ -2275,6 +2275,10 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_ternary_operator(Expressio
 
 	operation->false_expr = parse_precedence(PREC_TERNARY, false);
 
+	if (operation->false_expr == nullptr) {
+		push_error(R"(Expected expression after "else".)");
+	}
+
 	return operation;
 }
 

+ 4 - 0
modules/gdscript/tests/scripts/parser/errors/missing_expression_after_ternary_else.gd

@@ -0,0 +1,4 @@
+func test():
+	var x = 1 if false else
+	print("oops")
+	print(x)

+ 2 - 0
modules/gdscript/tests/scripts/parser/errors/missing_expression_after_ternary_else.out

@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Expected expression after "else".