Skip to content

Commit

Permalink
Merge pull request #80510 from dalexeev/gds-fix-access-inner-class-fr…
Browse files Browse the repository at this point in the history
…om-inside

GDScript: Fix "Identifier not found" error when accessing inner class from inside
  • Loading branch information
akien-mga committed Aug 14, 2023
2 parents 0308422 + fb45cab commit 6b5e44f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
3 changes: 3 additions & 0 deletions modules/gdscript/gdscript_analyzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3469,6 +3469,9 @@ void GDScriptAnalyzer::reduce_identifier_from_base(GDScriptParser::IdentifierNod
for (GDScriptParser::ClassNode *script_class : script_classes) {
if (p_base == nullptr && script_class->identifier && script_class->identifier->name == name) {
reduce_identifier_from_base_set_class(p_identifier, script_class->get_datatype());
if (script_class->outer != nullptr) {
p_identifier->source = GDScriptParser::IdentifierNode::MEMBER_CLASS;
}
return;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# GH-80508

class A:
func a():
return A.new()
func b():
return B.new()

class B:
func a():
return A.new()
func b():
return B.new()

func test():
var a := A.new()
var b := B.new()
print(a.a() is A)
print(a.b() is B)
print(b.a() is A)
print(b.b() is B)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
GDTEST_OK
true
true
true
true

0 comments on commit 6b5e44f

Please sign in to comment.