mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-03 23:21:15 +00:00 
			
		
		
		
	* Add missing `UNSAFE_CALL_ARGUMENT` warning. * Fix `Object` constructor. * Display an error for non-existent static methods.
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			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)
 |