Fix constant base typing in extended GDScript class

This commit is contained in:
Adam Scott
2022-12-04 16:55:40 -05:00
parent 39fe0bfdc3
commit 65a49bad5a
9 changed files with 112 additions and 44 deletions

View File

@ -0,0 +1,14 @@
const A: = preload("base_outer_resolution_a.notest.gd")
const B: = preload("base_outer_resolution_b.notest.gd")
const C: = preload("base_outer_resolution_c.notest.gd")
const Extend: = preload("base_outer_resolution_extend.notest.gd")
func test() -> void:
Extend.test_a(A.new())
Extend.test_b(B.new())
Extend.InnerClass.test_c(C.new())
Extend.InnerClass.InnerInnerClass.test_a_b_c(A.new(), B.new(), C.new())
Extend.InnerClass.InnerInnerClass.test_enum(C.TestEnum.HELLO_WORLD)
Extend.InnerClass.InnerInnerClass.test_a_prime(A.APrime.new())

View File

@ -0,0 +1,7 @@
GDTEST_OK
true
true
true
true
true
true

View File

@ -0,0 +1,2 @@
class APrime:
pass

View File

@ -0,0 +1,4 @@
const A: = preload("base_outer_resolution_a.notest.gd")
class InnerClassInBase:
const C: = preload("base_outer_resolution_c.notest.gd")

View File

@ -0,0 +1,3 @@
enum TestEnum {
HELLO_WORLD
}

View File

@ -0,0 +1,23 @@
extends "base_outer_resolution_base.notest.gd"
const B: = preload("base_outer_resolution_b.notest.gd")
static func test_a(a: A) -> void:
print(a is A)
static func test_b(b: B) -> void:
print(b is B)
class InnerClass extends InnerClassInBase:
static func test_c(c: C) -> void:
print(c is C)
class InnerInnerClass:
static func test_a_b_c(a: A, b: B, c: C) -> void:
print(a is A and b is B and c is C)
static func test_enum(test_enum: C.TestEnum) -> void:
print(test_enum == C.TestEnum.HELLO_WORLD)
static func test_a_prime(a_prime: A.APrime) -> void:
print(a_prime is A.APrime)