summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gdscript/tests')
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.gd10
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.gd15
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda_param.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.gd14
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.gd15
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_call_non_static_in_lambda_setter.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.gd11
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.gd75
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.out1
16 files changed, 155 insertions, 4 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.gd
new file mode 100644
index 0000000000..e041aeb914
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.gd
@@ -0,0 +1,10 @@
+# GH-91403
+
+static func static_func():
+ print(non_static_func)
+
+func non_static_func():
+ pass
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.out b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.out
new file mode 100644
index 0000000000..d8d6c8bc1b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Cannot access non-static function "non_static_func" from the static function "static_func()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.gd
new file mode 100644
index 0000000000..36bc9dbf15
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.gd
@@ -0,0 +1,15 @@
+# GH-91403
+
+func non_static_func():
+ pass
+
+static func static_func(
+ f := func ():
+ var g := func ():
+ print(non_static_func)
+ g.call()
+):
+ f.call()
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.out b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.out
new file mode 100644
index 0000000000..d8d6c8bc1b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_access_non_static_in_lambda_param.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Cannot access non-static function "non_static_func" from the static function "static_func()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static.out b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static.out
index b78f131345..c094c08cd8 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Cannot call non-static function "non_static_func()" from static function "static_func()".
+Cannot call non-static function "non_static_func()" from the static function "static_func()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda.out b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda.out
index b78f131345..c094c08cd8 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Cannot call non-static function "non_static_func()" from static function "static_func()".
+Cannot call non-static function "non_static_func()" from the static function "static_func()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda_param.out b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda_param.out
index b78f131345..c094c08cd8 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda_param.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_func_call_non_static_in_lambda_param.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Cannot call non-static function "non_static_func()" from static function "static_func()".
+Cannot call non-static function "non_static_func()" from the static function "static_func()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.gd
new file mode 100644
index 0000000000..7ae5bea7d7
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.gd
@@ -0,0 +1,14 @@
+# GH-91403
+
+func non_static_func():
+ pass
+
+static var static_var = func ():
+ var f := func ():
+ var g := func ():
+ print(non_static_func)
+ g.call()
+ f.call()
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.out b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.out
new file mode 100644
index 0000000000..153e81b405
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Cannot access non-static function "non_static_func" from a static variable initializer.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.gd
new file mode 100644
index 0000000000..7479afc532
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.gd
@@ -0,0 +1,15 @@
+# GH-91403
+
+func non_static_func():
+ pass
+
+static var static_var:
+ set(_value):
+ var f := func ():
+ var g := func ():
+ print(non_static_func)
+ g.call()
+ f.call()
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.out b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.out
new file mode 100644
index 0000000000..de43f2d3c4
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_access_non_static_in_lambda_setter.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Cannot access non-static function "non_static_func" from the static function "@static_var_setter()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_call_non_static_in_lambda_setter.out b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_call_non_static_in_lambda_setter.out
index cdf3ab2aeb..a285b80025 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_call_non_static_in_lambda_setter.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_call_non_static_in_lambda_setter.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Cannot call non-static function "non_static_func()" from static function "@static_var_setter()".
+Cannot call non-static function "non_static_func()" from the static function "@static_var_setter()".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.gd b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.gd
new file mode 100644
index 0000000000..a21b2c4470
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.gd
@@ -0,0 +1,11 @@
+# GH-91403
+
+@static_unload
+
+func non_static():
+ return "non static"
+
+static var static_var = Callable(non_static)
+
+func test():
+ print("does not run")
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.out b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.out
new file mode 100644
index 0000000000..a95069dc4f
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/static_var_init_non_static_access.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Cannot access non-static function "non_static" from a static variable initializer.
diff --git a/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.gd b/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.gd
new file mode 100644
index 0000000000..80ceb6d1a9
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.gd
@@ -0,0 +1,75 @@
+@static_unload
+
+static var static_var
+var non_static_var
+
+signal my_signal()
+
+static func static_func():
+ pass
+
+func non_static_func():
+ pass
+
+static var test_static_var_lambda = func ():
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+var test_non_static_var_lambda = func ():
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+ non_static_func()
+ print(non_static_func)
+ non_static_var = 1
+ print(non_static_var)
+ my_signal.emit()
+ print(my_signal)
+
+static var test_static_var_setter:
+ set(_value):
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+var test_non_static_var_setter:
+ set(_value):
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+ non_static_func()
+ print(non_static_func)
+ non_static_var = 1
+ print(non_static_var)
+ my_signal.emit()
+ print(my_signal)
+
+static func test_static_func():
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+func test_non_static_func():
+ static_func()
+ print(static_func)
+ static_var = 1
+ print(static_var)
+
+ non_static_func()
+ print(non_static_func)
+ non_static_var = 1
+ print(non_static_var)
+ my_signal.emit()
+ print(my_signal)
+
+func test():
+ test_static_var_lambda = null
+ test_non_static_var_lambda = null
diff --git a/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.out b/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.out
new file mode 100644
index 0000000000..d73c5eb7cd
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/static_non_static_access.out
@@ -0,0 +1 @@
+GDTEST_OK