GDScript: Fix @warning_ignore annotation issues

This commit is contained in:
Danil Alexeev
2024-02-28 17:23:11 +03:00
parent 61282068f4
commit ef1909fca3
25 changed files with 603 additions and 209 deletions

View File

@@ -1,15 +0,0 @@
@warning_ignore("unused_private_class_variable")
var _unused = 2
@warning_ignore("unused_variable")
func test():
print("test")
var unused = 3
@warning_ignore("redundant_await")
print(await regular_func())
print("done")
func regular_func() -> int:
return 0

View File

@@ -1,4 +0,0 @@
GDTEST_OK
test
0
done

View File

@@ -0,0 +1,35 @@
@warning_ignore("confusable_identifier")
class MyClАss:
var my_vАr
@warning_ignore("narrowing_conversion")
var i: int = f:
get:
return f
var f: float
@warning_ignore("narrowing_conversion")
func test_func(_i: int = f):
i = f
func test():
@warning_ignore("narrowing_conversion")
if signi(f): # TODO: Allow `@warning_ignore` before `elif`?
i = f
@warning_ignore("narrowing_conversion")
match signi(f):
1:
i = f
@warning_ignore("confusable_identifier")
var my_vАr:
var _my_vАr: Variant = my_vАr
@warning_ignore("narrowing_conversion")
for j in signi(f):
i = f
@warning_ignore("narrowing_conversion")
while signi(f):
i = f

View File

@@ -0,0 +1,29 @@
GDTEST_OK
>> WARNING
>> Line: 3
>> CONFUSABLE_IDENTIFIER
>> The identifier "my_vАr" has misleading characters and might be confused with something else.
>> WARNING
>> Line: 8
>> NARROWING_CONVERSION
>> Narrowing conversion (float is converted to int and loses precision).
>> WARNING
>> Line: 19
>> NARROWING_CONVERSION
>> Narrowing conversion (float is converted to int and loses precision).
>> WARNING
>> Line: 24
>> NARROWING_CONVERSION
>> Narrowing conversion (float is converted to int and loses precision).
>> WARNING
>> Line: 27
>> CONFUSABLE_IDENTIFIER
>> The identifier "_my_vАr" has misleading characters and might be confused with something else.
>> WARNING
>> Line: 31
>> NARROWING_CONVERSION
>> Narrowing conversion (float is converted to int and loses precision).
>> WARNING
>> Line: 35
>> NARROWING_CONVERSION
>> Narrowing conversion (float is converted to int and loses precision).

View File

@@ -0,0 +1,156 @@
@warning_ignore("redundant_static_unload")
@static_unload
extends Node
class A extends Node:
static func static_called_on_instance():
pass
@warning_ignore("get_node_default_without_onready")
var get_node_default_without_onready = $Node
@warning_ignore("unused_private_class_variable")
var _unused_private_class_variable
@warning_ignore("onready_with_export")
@onready @export var onready_with_export = 1
var shadowed_variable
var confusable_local_usage
@warning_ignore("unused_signal")
signal unused_signal()
func variant_func() -> Variant:
return null
func int_func() -> int:
return 1
@warning_ignore("unused_parameter")
func test_warnings(unused_private_class_variable):
var t = 1
@warning_ignore("unassigned_variable")
var unassigned_variable
print(unassigned_variable)
var _unassigned_variable_op_assign
@warning_ignore("unassigned_variable_op_assign")
_unassigned_variable_op_assign += t
@warning_ignore("unused_variable")
var unused_variable
@warning_ignore("unused_local_constant")
const unused_local_constant = 1
@warning_ignore("shadowed_variable")
var shadowed_variable = 1
print(shadowed_variable)
@warning_ignore("shadowed_variable_base_class")
var name = "test"
print(name)
@warning_ignore("shadowed_global_identifier")
var var_to_str = 1
print(var_to_str)
@warning_ignore("standalone_expression")
1 + 2
@warning_ignore("standalone_ternary")
1 if 2 else 3
@warning_ignore("incompatible_ternary")
t = 1 if 2 else false
@warning_ignore("unsafe_property_access")
self.unsafe_property_access = 1
var node: Node = null
@warning_ignore("unsafe_method_access")
node.unsafe_method_access()
@warning_ignore("unsafe_cast")
print(variant_func().x as int)
var key: Variant = "key"
@warning_ignore("unsafe_call_argument")
set(key, 1)
variant_func() # No warning (intended?).
@warning_ignore("return_value_discarded")
int_func()
var a: A = null
@warning_ignore("static_called_on_instance")
a.static_called_on_instance()
@warning_ignore("redundant_await")
await 1
@warning_ignore("assert_always_true")
assert(true)
assert(false) # No warning (intended).
@warning_ignore("assert_always_false")
assert(false and false)
@warning_ignore("integer_division")
var _integer_division = 5 / 2
@warning_ignore("narrowing_conversion")
var _narrowing_conversion: int = floorf(2.5)
@warning_ignore("int_as_enum_without_cast")
var _int_as_enum_without_cast: Variant.Type = 1
@warning_ignore("int_as_enum_without_cast", "int_as_enum_without_match")
var _int_as_enum_without_match: Variant.Type = 255
@warning_ignore("confusable_identifier")
var _cОnfusable_identifier = 1
if true:
@warning_ignore("confusable_local_declaration")
var _confusable_local_declaration = 1
var _confusable_local_declaration = 2
@warning_ignore("confusable_local_usage")
print(confusable_local_usage)
@warning_ignore("shadowed_variable")
var confusable_local_usage = 2
print(confusable_local_usage)
@warning_ignore("inference_on_variant")
var _inference_on_variant := variant_func()
func test_unreachable_code():
return
@warning_ignore("unreachable_code")
print(1)
func test_unreachable_pattern():
match 1:
_:
print(0)
@warning_ignore("unreachable_pattern")
1:
print(1)
func test_unsafe_void_return_variant() -> void:
return variant_func() # No warning (intended?).
func test_unsafe_void_return() -> void:
@warning_ignore("unsafe_method_access", "unsafe_void_return")
return variant_func().f()
@warning_ignore("native_method_override")
func get_class():
pass
# We don't want to execute it because of errors, just analyze.
func test():
pass

View File

@@ -0,0 +1 @@
GDTEST_OK