diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-11-03 13:08:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-03 13:08:48 +0100 |
commit | bd13e820803430734f7e05f8a6d88638025b1ff0 (patch) | |
tree | 867260f237410c88315c1d3dab410e1955983657 /modules | |
parent | 873d4617852cddfd368e3046f718f410eade6a3e (diff) | |
parent | 07053d0c6a69e87825bbd3259ea268dd9f03e708 (diff) | |
download | redot-engine-bd13e820803430734f7e05f8a6d88638025b1ff0.tar.gz |
Merge pull request #41516 from Lunatoid/allow-object-new
Fixed ParseError when calling Object.new()
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 5250115608..ab4edb04b9 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -2279,10 +2279,12 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident StringName name = p_identifier->name; p_identifier->source = GDScriptParser::IdentifierNode::UNDEFINED_SOURCE; - // Check globals. - if (GDScriptParser::get_builtin_type(name) < Variant::VARIANT_MAX) { + // Check globals. We make an exception for Variant::OBJECT because it's the base class for + // non-builtin types so we allow doing e.g. Object.new() + Variant::Type builtin_type = GDScriptParser::get_builtin_type(name); + if (builtin_type != Variant::OBJECT && builtin_type < Variant::VARIANT_MAX) { if (can_be_builtin) { - p_identifier->set_datatype(make_builtin_meta_type(GDScriptParser::get_builtin_type(name))); + p_identifier->set_datatype(make_builtin_meta_type(builtin_type)); return; } else { push_error(R"(Builtin type cannot be used as a name on its own.)", p_identifier); |