diff options
| author | George Marques <george@gmarqu.es> | 2023-04-19 11:10:35 -0300 |
|---|---|---|
| committer | George Marques <george@gmarqu.es> | 2023-04-27 09:51:44 -0300 |
| commit | 0ba6048ad3c945e2bd1d0114b5095535c22103ce (patch) | |
| tree | e9d17e159dab50dc6cc3d574a25647af01939d6c /modules/gdscript/tests/scripts/analyzer/errors | |
| parent | 352ebe97259622f20b47627b4bf747cdfc79304d (diff) | |
| download | redot-engine-0ba6048ad3c945e2bd1d0114b5095535c22103ce.tar.gz | |
Add support for static variables in GDScript
Which allows editable data associated with a particular class instead of
the instance. Scripts with static variables are kept in memory
indefinitely unless the `@static_unload` annotation is used or the
`static_unload()` method is called on the GDScript.
If the custom function `_static_init()` exists it will be called when
the class is loaded, after the static variables are set.
Diffstat (limited to 'modules/gdscript/tests/scripts/analyzer/errors')
4 files changed, 18 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.gd new file mode 100644 index 0000000000..3dac751ba9 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.gd @@ -0,0 +1,5 @@ +static func _static_init() -> int: + print("static init") + +func test(): + print("done") diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.out b/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.out new file mode 100644 index 0000000000..42294b7afb --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/static_constructor_with_return_type.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Static constructor cannot have an explicit return type. diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.gd new file mode 100644 index 0000000000..1ae814ea34 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.gd @@ -0,0 +1,9 @@ +@static_unload + +func non_static(): + return "non static" + +static var static_var = non_static() + +func test(): + print("does not run") diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.out b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.out new file mode 100644 index 0000000000..f1e9ec34f2 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_call.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot call non-static function "non_static()" for static variable initializer. |
