Fix cyclic reference errors while reducing identifiers.
Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
This commit is contained in:
parent
91fedb60de
commit
48e041458f
2 changed files with 3 additions and 3 deletions
|
@ -2910,8 +2910,8 @@ void GDScriptAnalyzer::reduce_identifier_from_base_set_class(GDScriptParser::Ide
|
||||||
|
|
||||||
p_identifier->set_datatype(p_identifier_datatype);
|
p_identifier->set_datatype(p_identifier_datatype);
|
||||||
Error err = OK;
|
Error err = OK;
|
||||||
GDScript *scr = GDScriptCache::get_full_script(p_identifier_datatype.script_path, err).ptr();
|
GDScript *scr = GDScriptCache::get_shallow_script(p_identifier_datatype.script_path, err).ptr();
|
||||||
ERR_FAIL_COND_MSG(err != OK, "Error while getting full script.");
|
ERR_FAIL_COND_MSG(err != OK, vformat(R"(Error while getting cache for script "%s".)", p_identifier_datatype.script_path));
|
||||||
scr = scr->find_class(p_identifier_datatype.class_type->fqcn);
|
scr = scr->find_class(p_identifier_datatype.class_type->fqcn);
|
||||||
p_identifier->reduced_value = scr;
|
p_identifier->reduced_value = scr;
|
||||||
p_identifier->is_constant = true;
|
p_identifier->is_constant = true;
|
||||||
|
|
|
@ -213,7 +213,7 @@ static bool _have_exact_arguments(const MethodBind *p_method, const Vector<GDScr
|
||||||
}
|
}
|
||||||
|
|
||||||
GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &codegen, Error &r_error, const GDScriptParser::ExpressionNode *p_expression, bool p_root, bool p_initializer, const GDScriptCodeGenerator::Address &p_index_addr) {
|
GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &codegen, Error &r_error, const GDScriptParser::ExpressionNode *p_expression, bool p_root, bool p_initializer, const GDScriptCodeGenerator::Address &p_index_addr) {
|
||||||
if (p_expression->is_constant && !p_expression->get_datatype().is_meta_type) {
|
if (p_expression->is_constant && !(p_expression->get_datatype().is_meta_type && p_expression->get_datatype().kind == GDScriptParser::DataType::CLASS)) {
|
||||||
return codegen.add_constant(p_expression->reduced_value);
|
return codegen.add_constant(p_expression->reduced_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue