Merge pull request #70700 from vonagam/fix-abstract-extends

GDScript: Fix extending abstract classes, forbid their construction
This commit is contained in:
Rémi Verschelde 2023-01-12 17:19:51 +01:00
commit def592114f
No known key found for this signature in database
GPG key ID: C3336907360768E1
8 changed files with 54 additions and 12 deletions

View file

@ -0,0 +1,2 @@
func test():
CanvasItem.new()

View file

@ -0,0 +1,2 @@
GDTEST_ANALYZER_ERROR
Native class "CanvasItem" cannot be constructed as it is abstract.

View file

@ -0,0 +1,9 @@
class A extends CanvasItem:
func _init():
print('no')
class B extends A:
pass
func test():
B.new()

View file

@ -0,0 +1,2 @@
GDTEST_ANALYZER_ERROR
Class "abstract_script_instantiate.gd::B" cannot be constructed as it is based on abstract native class "CanvasItem".

View file

@ -0,0 +1,12 @@
class A extends CanvasItem:
func _init():
pass
class B extends A:
pass
class C extends CanvasItem:
pass
func test():
print('ok')

View file

@ -0,0 +1,2 @@
GDTEST_OK
ok