GDScript: Fix parsing default parameter values from function calls

This commit is contained in:
strank
2022-01-12 21:13:08 -05:00
parent d13c3c9296
commit 960a26f6c0
5 changed files with 53 additions and 1 deletions

View File

@@ -0,0 +1,35 @@
# https://github.com/godotengine/godot/issues/56702
func test():
const_default()
func_result_default()
# calling again will run the initializer again,
# as the default is not evaluated at time of defining the function (as in python)
# but every time the function is called (as in C++)
func_result_default()
lots_of_defaults("non-optional")
# somewhat obscure feature: referencing earlier parameters
ref_default("non-optional", 42)
func const_default(param=42):
print(param)
var default_val := 0
func get_default():
default_val += 1
return default_val
func func_result_default(param=get_default()):
print(param)
func lots_of_defaults(nondefault, one=1, two=2, three=get_default()):
prints(nondefault, one, two, three)
func ref_default(nondefault1, nondefault2, defa=nondefault1, defb=nondefault2 - 1):
prints(nondefault1, nondefault2, defa, defb)

View File

@@ -0,0 +1,6 @@
GDTEST_OK
42
1
2
non-optional 1 2 3
non-optional 42 non-optional 41