From 41ed905c1aa2f2a55648a5cb49113ef1474b6860 Mon Sep 17 00:00:00 2001 From: George Marques Date: Thu, 9 Jan 2020 09:03:09 -0300 Subject: GDScript: Allow copy constructor for built-in types Those are implicitly defined in Variant. --- modules/gdscript/gdscript_parser.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'modules/gdscript/gdscript_parser.cpp') diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index fc35678e65..f9cd7d8115 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -6965,6 +6965,17 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat if (error_set) return DataType(); + // Special case: check copy constructor. Those are defined implicitly in Variant. + if (par_types.size() == 1) { + if (!par_types[0].has_type || (par_types[0].kind == DataType::BUILTIN && par_types[0].builtin_type == tn->vtype)) { + DataType result; + result.has_type = true; + result.kind = DataType::BUILTIN; + result.builtin_type = tn->vtype; + return result; + } + } + bool match = false; List constructors; Variant::get_constructor_list(tn->vtype, &constructors); -- cgit v1.2.3