File: hard_variants.gd

package info (click to toggle)
godot 4.4.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 229,428 kB
  • sloc: cpp: 1,657,504; ansic: 186,969; xml: 153,923; cs: 36,104; java: 29,122; python: 15,230; javascript: 6,211; yacc: 4,115; pascal: 818; objc: 459; sh: 459; makefile: 109
file content (35 lines) | stat: -rw-r--r-- 948 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
func variant() -> Variant: return null

var member_weak = variant()
var member_typed: Variant = variant()
@warning_ignore("inference_on_variant")
var member_inferred := variant()

func param_weak(param = variant()) -> void: print(param)
func param_typed(param: Variant = variant()) -> void: print(param)
@warning_ignore("inference_on_variant")
func param_inferred(param := variant()) -> void: print(param)

func return_untyped(): return variant()
func return_typed() -> Variant: return variant()

@warning_ignore_start("unused_variable", "inference_on_variant")
func test() -> void:
	var weak = variant()
	var typed: Variant = variant()
	var inferred := variant()

	weak = variant()
	typed = variant()
	inferred = variant()

	@warning_ignore("unsafe_call_argument") # TODO: Hard vs Weak vs Unknown.
	param_weak(typed)
	param_typed(typed)
	param_inferred(typed)

	if typed == null: pass
	if typed != null: pass
	if typed is Node: pass

	print("ok")