virtualx-engine/modules/gdscript/tests/scripts/runtime/features/static_variables.gd
Danil Alexeev e8696f9961
GDScript: Improve call analysis
* Add missing `UNSAFE_CALL_ARGUMENT` warning.
* Fix `Object` constructor.
* Display an error for non-existent static methods.
2023-09-21 13:36:39 +03:00

57 lines
1.2 KiB
GDScript

@static_unload
static var perm := 0
static var prop := "Hello!":
get: return prop + " suffix"
set(value): prop = "prefix " + str(value)
static func get_data():
return "data"
static var data = get_data()
class Inner:
static var prop := "inner"
static func _static_init() -> void:
prints("Inner._static_init", prop)
class InnerInner:
static var prop := "inner inner"
static func _static_init() -> void:
prints("InnerInner._static_init", prop)
func test():
prints("data:", data)
prints("perm:", perm)
prints("prop:", prop)
perm = 1
prop = "World!"
prints("perm:", perm)
prints("prop:", prop)
prints("other.perm:", StaticVariablesOther.perm)
prints("other.prop:", StaticVariablesOther.prop)
StaticVariablesOther.perm = 2
StaticVariablesOther.prop = "foo"
prints("other.perm:", StaticVariablesOther.perm)
prints("other.prop:", StaticVariablesOther.prop)
@warning_ignore("unsafe_method_access")
var path = get_script().get_path().get_base_dir()
@warning_ignore("unsafe_call_argument")
var other = load(path + "/static_variables_load.gd")
prints("load.perm:", other.perm)
prints("load.prop:", other.prop)
other.perm = 3
other.prop = "bar"
prints("load.perm:", other.perm)
prints("load.prop:", other.prop)