GDScript: Add check for super() methods not being implemented

This commit is contained in:
ocean (they/them)
2023-09-17 11:34:18 -04:00
parent 4df80b0e62
commit 729c9b4d4b
5 changed files with 38 additions and 1 deletions

View File

@@ -0,0 +1,5 @@
func _init():
super()
func test():
pass

View File

@@ -0,0 +1,2 @@
GDTEST_ANALYZER_ERROR
Cannot call the parent class' virtual function "_init()" because it hasn't been defined.

View File

@@ -0,0 +1,21 @@
class BaseClass:
func _get_property_list():
return {"property" : "definition"}
class SuperClassMethodsRecognized extends BaseClass:
func _init():
# Recognizes super class methods.
var _x = _get_property_list()
class SuperMethodsRecognized extends BaseClass:
func _get_property_list():
# Recognizes super method.
var result = super()
result["new"] = "new"
return result
func test():
var test1 = SuperClassMethodsRecognized.new()
print(test1._get_property_list()) # Calls base class's method.
var test2 = SuperMethodsRecognized.new()
print(test2._get_property_list())

View File

@@ -0,0 +1,3 @@
GDTEST_OK
{ "property": "definition" }
{ "property": "definition", "new": "new" }