diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-15 15:26:18 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-15 15:26:18 +0200 |
commit | 49b774e009826ec582fba0e144439c98f2eca09d (patch) | |
tree | 9684bf80e3a1da39af3433323cd634655d897b8a /modules/gdscript/tests/scripts/analyzer | |
parent | 3b4504afea33e4b35ac18ac1ce9c2c2726a46573 (diff) | |
parent | 861743cd04dd1b46392b969ae5332a21b69f21b6 (diff) | |
download | redot-engine-49b774e009826ec582fba0e144439c98f2eca09d.tar.gz |
Merge pull request #77324 from anvilfolk/oh-no-its-virtual
GDScript: add errors when calling unimplemented virtual functions
Diffstat (limited to 'modules/gdscript/tests/scripts/analyzer')
6 files changed, 23 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd new file mode 100644 index 0000000000..c34d927035 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd @@ -0,0 +1,2 @@ +func test(): + _get_property_list() diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out new file mode 100644 index 0000000000..ce2f49a5e5 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot call virtual function "_get_property_list()" because it hasn't been defined. diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd new file mode 100644 index 0000000000..57dfffdbee --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd @@ -0,0 +1,5 @@ +func _init(): + super() + +func test(): + pass diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out new file mode 100644 index 0000000000..e68759223c --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot call the parent class' virtual function "_init()" because it hasn't been defined. diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd b/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd new file mode 100644 index 0000000000..1aacd1d11c --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd @@ -0,0 +1,11 @@ +class TestOne: + func _get_property_list(): + return {} + +class TestTwo extends TestOne: + func _init(): + var _x = _get_property_list() + +func test(): + var x = TestTwo.new() + var _x = x._get_property_list() diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out b/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out new file mode 100644 index 0000000000..d73c5eb7cd --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out @@ -0,0 +1 @@ +GDTEST_OK |