# GH-77098 p.4
@static_unload
class A:
class InnerClass:
pass
enum NamedEnum { VALUE = 111 }
enum { UNNAMED_ENUM_VALUE = 222 }
const CONSTANT = 333
static var static_var := 1
static func static_func() -> int:
return 444
class B extends A:
func test_self():
print(self.InnerClass is GDScript)
print(self.NamedEnum)
print(self.NamedEnum.VALUE)
print(self.UNNAMED_ENUM_VALUE)
print(self.CONSTANT)
@warning_ignore("static_called_on_instance")
print(self.static_func())
prints("test_self before:", self.static_var)
self.static_var = 2
prints("test_self after:", self.static_var)
func test():
var hard := B.new()
hard.test_self()
print(hard.InnerClass is GDScript)
print(hard.NamedEnum)
print(hard.NamedEnum.VALUE)
print(hard.UNNAMED_ENUM_VALUE)
print(hard.CONSTANT)
@warning_ignore("static_called_on_instance")
print(hard.static_func())
prints("hard before:", hard.static_var)
hard.static_var = 3
prints("hard after:", hard.static_var)
var weak: Variant = B.new()
print(weak.InnerClass is GDScript)
print(weak.NamedEnum)
print(weak.NamedEnum.VALUE)
print(weak.UNNAMED_ENUM_VALUE)
print(weak.CONSTANT)
@warning_ignore("unsafe_method_access")
print(weak.static_func())
prints("weak before:", weak.static_var)
weak.static_var = 4
prints("weak after:", weak.static_var)