GDScript: Fix conversions from native members accessed by identifier

This commit is contained in:
Dmitrii Maganov 2023-02-25 10:53:36 +02:00
parent 3863199ab9
commit 281c8c75d3
3 changed files with 14 additions and 1 deletions

View file

@ -242,7 +242,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;
}

View file

@ -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()