Forráskód Böngészése

Merge pull request #73915 from vonagam/fix-conversions-from-native-member

GDScript: Fix conversions from native members accessed by identifier
Rémi Verschelde 2 éve
szülő
commit
c0f1ed57c4

+ 1 - 1
modules/gdscript/gdscript_compiler.cpp

@@ -238,7 +238,7 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code
 			// Try class members.
 			if (_is_class_member_property(codegen, identifier)) {
 				// Get property.
-				GDScriptCodeGenerator::Address temp = codegen.add_temporary(); // TODO: Could get the type of the class member here.
+				GDScriptCodeGenerator::Address temp = codegen.add_temporary(_gdtype_from_datatype(p_expression->get_datatype(), codegen.script));
 				gen->write_get_member(temp, identifier);
 				return temp;
 			}

+ 11 - 0
modules/gdscript/tests/scripts/runtime/features/conversions_from_native_members.gd

@@ -0,0 +1,11 @@
+class Foo extends Node:
+	func _init():
+		name = 'f'
+		var string: String = name
+		assert(typeof(string) == TYPE_STRING)
+		assert(string == 'f')
+		print('ok')
+
+func test():
+	var foo := Foo.new()
+	foo.free()

+ 2 - 0
modules/gdscript/tests/scripts/runtime/features/conversions_from_native_members.out

@@ -0,0 +1,2 @@
+GDTEST_OK
+ok