Browse Source

GDScript: Allow copy constructor for built-in types

Those are implicitly defined in Variant.
George Marques 5 years ago
parent
commit
41ed905c1a
1 changed files with 11 additions and 0 deletions
  1. 11 0
      modules/gdscript/gdscript_parser.cpp

+ 11 - 0
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<MethodInfo> constructors;
 			Variant::get_constructor_list(tn->vtype, &constructors);