273bf7210f
- Adds a list of default levels for all warning so they can be set individually. - Add warnings set by default to error for: - Using `get_node()` without `@onready`. - Using `@onready` together with `@export`. - Inferring a static type with a Variant value. - Overriding a native engine method. - Adjust how annotations to ignore warnings are treated so they also apply to method parameters. - Clean up a bit how ignored warnings are set. There were two sets but only one was actually being used. - Set all warnings to the `WARN` level for tests, so they they can be properly tested. - Fix enum types in native methods signatures being set to `int`. - Fix native enums being treated as Dictionary by mistake. - Make name of native enum types use the class they are defined in, not the direct super class of the script. This ensures they are always equal even when coming from different sources. - Fix error for signature mismatch that was only showing the first default argument as having a default. Now it shows for all.
35 lines
868 B
GDScript
35 lines
868 B
GDScript
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("unused_variable", "inference_on_variant")
|
|
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')
|