Fix GDScript base and outer classes, signals and functions lookup order

- Add outer class lookup test
- Add signal lookup test

Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
This commit is contained in:
Adam Scott
2022-12-18 00:38:53 -05:00
parent d3fc9d9e41
commit fb175d92da
15 changed files with 269 additions and 87 deletions
@@ -0,0 +1,50 @@
# Inner-outer class lookup
class A:
const Q: = "right one"
class X:
const Q: = "wrong one"
class Y extends X:
class B extends A:
static func check() -> void:
print(Q)
# External class lookup
const External: = preload("lookup_class_external.notest.gd")
class Internal extends External.A:
static func check() -> void:
print(TARGET)
class E extends External.E:
static func check() -> void:
print(TARGET)
print(WAITING)
# Variable lookup
class C:
var Q := 'right one'
class D:
const Q := 'wrong one'
class E extends D:
class F extends C:
func check() -> void:
print(Q)
# Test
func test() -> void:
# Inner-outer class lookup
Y.B.check()
print("---")
# External class lookup
Internal.check()
Internal.E.check()
print("---")
# Variable lookup
var f: = E.F.new()
f.check()