From ef81b344be72346dcdc11ebbde575dbc965bd732 Mon Sep 17 00:00:00 2001 From: Dmitrii Maganov Date: Fri, 25 Nov 2022 11:01:18 +0200 Subject: GDScript: Fix wrong marking of some lines related to Variant as unsafe --- .../scripts/analyzer/features/hard_variants.gd | 32 ++++++++++++++++++++++ .../scripts/analyzer/features/hard_variants.out | 5 ++++ 2 files changed, 37 insertions(+) create mode 100644 modules/gdscript/tests/scripts/analyzer/features/hard_variants.gd create mode 100644 modules/gdscript/tests/scripts/analyzer/features/hard_variants.out (limited to 'modules/gdscript/tests/scripts/analyzer') diff --git a/modules/gdscript/tests/scripts/analyzer/features/hard_variants.gd b/modules/gdscript/tests/scripts/analyzer/features/hard_variants.gd new file mode 100644 index 0000000000..211115d9cb --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/features/hard_variants.gd @@ -0,0 +1,32 @@ +func variant() -> Variant: return null + +var member_weak = variant() +var member_typed: Variant = variant() +var member_inferred := variant() + +func param_weak(param = variant()) -> void: print(param) +func param_typed(param: Variant = variant()) -> void: print(param) +func param_inferred(param := variant()) -> void: print(param) + +func return_untyped(): return variant() +func return_typed() -> Variant: return variant() + +@warning_ignore(unused_variable) +func test() -> void: + var weak = variant() + var typed: Variant = variant() + var inferred := variant() + + weak = variant() + typed = variant() + inferred = variant() + + param_weak(typed) + param_typed(typed) + param_inferred(typed) + + if typed == null: pass + if typed != null: pass + if typed is Node: pass + + print('ok') diff --git a/modules/gdscript/tests/scripts/analyzer/features/hard_variants.out b/modules/gdscript/tests/scripts/analyzer/features/hard_variants.out new file mode 100644 index 0000000000..08491efa07 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/features/hard_variants.out @@ -0,0 +1,5 @@ +GDTEST_OK + + + +ok -- cgit v1.2.3