GDScript: Add abstract methods
Co-authored-by: ryanabx <ryanbrue@hotmail.com>
This commit is contained in:
@@ -1,18 +1,12 @@
|
||||
# GH-82169
|
||||
|
||||
class A:
|
||||
static var test_static_var_a1
|
||||
static var test_static_var_a2
|
||||
var test_var_a1
|
||||
var test_var_a2
|
||||
static func test_static_func_a1(): pass
|
||||
static func test_static_func_a2(): pass
|
||||
func test_func_a1(): pass
|
||||
func test_func_a2(): pass
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_a1()
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_a2()
|
||||
@warning_ignore_start("unused_signal")
|
||||
|
||||
abstract class A:
|
||||
abstract func test_abstract_func_1()
|
||||
abstract func test_abstract_func_2()
|
||||
func test_override_func_1(): pass
|
||||
func test_override_func_2(): pass
|
||||
|
||||
class B extends A:
|
||||
static var test_static_var_b1
|
||||
@@ -21,27 +15,67 @@ class B extends A:
|
||||
var test_var_b2
|
||||
static func test_static_func_b1(): pass
|
||||
static func test_static_func_b2(): pass
|
||||
func test_abstract_func_1(): pass
|
||||
func test_abstract_func_2(): pass
|
||||
func test_override_func_1(): pass
|
||||
func test_override_func_2(): pass
|
||||
func test_func_b1(): pass
|
||||
func test_func_b2(): pass
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_b1()
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_b2()
|
||||
|
||||
class C extends B:
|
||||
static var test_static_var_c1
|
||||
static var test_static_var_c2
|
||||
var test_var_c1
|
||||
var test_var_c2
|
||||
static func test_static_func_c1(): pass
|
||||
static func test_static_func_c2(): pass
|
||||
func test_abstract_func_1(): pass
|
||||
func test_abstract_func_2(): pass
|
||||
func test_override_func_1(): pass
|
||||
func test_override_func_2(): pass
|
||||
func test_func_c1(): pass
|
||||
func test_func_c2(): pass
|
||||
signal test_signal_c1()
|
||||
signal test_signal_c2()
|
||||
|
||||
func test_property_signature(name: String, base: Object, is_static: bool = false) -> void:
|
||||
prints("---", name, "---")
|
||||
for property in base.get_property_list():
|
||||
if str(property.name).begins_with("test_"):
|
||||
print(Utils.get_property_signature(property, null, is_static))
|
||||
|
||||
func test_method_signature(name: String, base: Object) -> void:
|
||||
prints("---", name, "---")
|
||||
for method in base.get_method_list():
|
||||
if str(method.name).begins_with("test_"):
|
||||
print(Utils.get_method_signature(method))
|
||||
|
||||
func test_signal_signature(name: String, base: Object) -> void:
|
||||
prints("---", name, "---")
|
||||
for method in base.get_signal_list():
|
||||
if str(method.name).begins_with("test_"):
|
||||
print(Utils.get_method_signature(method, true))
|
||||
|
||||
func test():
|
||||
var b := B.new()
|
||||
for property in (B as GDScript).get_property_list():
|
||||
if str(property.name).begins_with("test_"):
|
||||
print(Utils.get_property_signature(property, null, true))
|
||||
print("---")
|
||||
for property in b.get_property_list():
|
||||
if str(property.name).begins_with("test_"):
|
||||
print(Utils.get_property_signature(property))
|
||||
print("---")
|
||||
for method in b.get_method_list():
|
||||
if str(method.name).begins_with("test_"):
|
||||
print(Utils.get_method_signature(method))
|
||||
print("---")
|
||||
for method in b.get_signal_list():
|
||||
if str(method.name).begins_with("test_"):
|
||||
print(Utils.get_method_signature(method, true))
|
||||
var c := C.new()
|
||||
|
||||
print("=== Class Properties ===")
|
||||
test_property_signature("A", A as GDScript, true)
|
||||
test_property_signature("B", B as GDScript, true)
|
||||
test_property_signature("C", C as GDScript, true)
|
||||
print("=== Member Properties ===")
|
||||
test_property_signature("B", b)
|
||||
test_property_signature("C", c)
|
||||
print("=== Class Methods ===")
|
||||
test_method_signature("A", A as GDScript)
|
||||
test_method_signature("B", B as GDScript)
|
||||
test_method_signature("C", C as GDScript)
|
||||
print("=== Member Methods ===")
|
||||
test_method_signature("B", b)
|
||||
test_method_signature("C", c)
|
||||
print("=== Signals ===")
|
||||
test_signal_signature("B", b)
|
||||
test_signal_signature("C", c)
|
||||
|
||||
Reference in New Issue
Block a user