set parser error when infer type is null

(cherry picked from commit 687b1941b4)
This commit is contained in:
Thakee Nathees 2020-05-10 10:35:29 +05:30 committed by Rémi Verschelde
parent f5a3d34593
commit 40c43da96f
1 changed files with 8 additions and 0 deletions

View File

@ -7831,6 +7831,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); _set_error("The assigned value doesn't have a set type; the variable type can't be inferred.", v.line);
return; 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 = expr_type;
v.data_type.is_constant = false; v.data_type.is_constant = false;
} }
@ -8212,6 +8216,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); _set_error("The assigned value doesn't have a set type; the variable type can't be inferred.", lv->line);
return; 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 = assign_type;
lv->datatype.is_constant = false; lv->datatype.is_constant = false;
} }