diff options
| author | strank <strank@strank.info> | 2022-01-12 21:13:08 -0500 |
|---|---|---|
| committer | strank <strank@strank.info> | 2022-01-13 19:28:39 -0500 |
| commit | 960a26f6c0d78f6e5176a0681aff7716d0819175 (patch) | |
| tree | 088617efc9071b73220f377649e3ea4dde90aa65 /modules/gdscript/tests/scripts/runtime/features/params_default_values.gd | |
| parent | d13c3c92965980aacbf94007d94a56aa92ebbb4e (diff) | |
| download | redot-engine-960a26f6c0d78f6e5176a0681aff7716d0819175.tar.gz | |
GDScript: Fix parsing default parameter values from function calls
Diffstat (limited to 'modules/gdscript/tests/scripts/runtime/features/params_default_values.gd')
| -rw-r--r-- | modules/gdscript/tests/scripts/runtime/features/params_default_values.gd | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd b/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd new file mode 100644 index 0000000000..8156b4ec68 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd @@ -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) |
