Merge pull request #38610 from ThakeeNathees/infer-type-null-error

set parser error when infer type is null
This commit is contained in:
Rémi Verschelde 2020-05-14 21:50:48 +02:00 committed by GitHub
commit 5046f666a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8005,6 +8005,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;
} }
@ -8388,6 +8392,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;
} }