| 
									
										
										
										
											2022-11-25 11:01:18 +02:00
										 |  |  | func variant() -> Variant: return null | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var member_weak = variant() | 
					
						
							|  |  |  | var member_typed: Variant = variant() | 
					
						
							| 
									
										
										
										
											2023-02-02 11:57:22 -03:00
										 |  |  | @warning_ignore("inference_on_variant") | 
					
						
							| 
									
										
										
										
											2022-11-25 11:01:18 +02:00
										 |  |  | var member_inferred := variant() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func param_weak(param = variant()) -> void: print(param) | 
					
						
							|  |  |  | func param_typed(param: Variant = variant()) -> void: print(param) | 
					
						
							| 
									
										
										
										
											2023-02-02 11:57:22 -03:00
										 |  |  | @warning_ignore("inference_on_variant") | 
					
						
							| 
									
										
										
										
											2022-11-25 11:01:18 +02:00
										 |  |  | func param_inferred(param := variant()) -> void: print(param) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func return_untyped(): return variant() | 
					
						
							|  |  |  | func return_typed() -> Variant: return variant() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-06 10:25:59 +03:00
										 |  |  | @warning_ignore_start("unused_variable", "inference_on_variant") | 
					
						
							| 
									
										
										
										
											2022-11-25 11:01:18 +02:00
										 |  |  | func test() -> void: | 
					
						
							|  |  |  | 	var weak = variant() | 
					
						
							|  |  |  | 	var typed: Variant = variant() | 
					
						
							|  |  |  | 	var inferred := variant() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	weak = variant() | 
					
						
							|  |  |  | 	typed = variant() | 
					
						
							|  |  |  | 	inferred = variant() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-21 12:42:55 +03:00
										 |  |  | 	@warning_ignore("unsafe_call_argument") # TODO: Hard vs Weak vs Unknown. | 
					
						
							| 
									
										
										
										
											2022-11-25 11:01:18 +02:00
										 |  |  | 	param_weak(typed) | 
					
						
							|  |  |  | 	param_typed(typed) | 
					
						
							|  |  |  | 	param_inferred(typed) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if typed == null: pass | 
					
						
							|  |  |  | 	if typed != null: pass | 
					
						
							|  |  |  | 	if typed is Node: pass | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-06 10:25:59 +03:00
										 |  |  | 	print("ok") |