Browse Source

set parser error when infer type is null

Thakee Nathees 5 years ago
parent
commit
687b1941b4
1 changed files with 8 additions and 0 deletions
  1. 8 0
      modules/gdscript/gdscript_parser.cpp

+ 8 - 0
modules/gdscript/gdscript_parser.cpp

@@ -7829,6 +7829,10 @@ void GDScriptParser::_check_class_level_types(ClassNode *p_class) {
 					_set_error("The assigned value doesn't have a set type; the variable type can't be inferred.", v.line);
 					return;
 				}
+				if (expr_type.kind == DataType::BUILTIN && expr_type.builtin_type == Variant::NIL) {
+					_set_error("The variable type cannot be inferred because its value is \"null\".", v.line);
+					return;
+				}
 				v.data_type = expr_type;
 				v.data_type.is_constant = false;
 			}
@@ -8211,6 +8215,10 @@ void GDScriptParser::_check_block_types(BlockNode *p_block) {
 							_set_error("The assigned value doesn't have a set type; the variable type can't be inferred.", lv->line);
 							return;
 						}
+						if (assign_type.kind == DataType::BUILTIN && assign_type.builtin_type == Variant::NIL) {
+							_set_error("The variable type cannot be inferred because its value is \"null\".", lv->line);
+							return;
+						}
 						lv->datatype = assign_type;
 						lv->datatype.is_constant = false;
 					}