You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-06 17:25:19 +00:00
GDScript: Fix @warning_ignore annotation issues
This commit is contained in:
@@ -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
|
||||
@@ -1,4 +0,0 @@
|
||||
GDTEST_OK
|
||||
test
|
||||
0
|
||||
done
|
||||
@@ -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
|
||||
@@ -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).
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
GDTEST_OK
|
||||
@@ -2,8 +2,8 @@ GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 3
|
||||
>> UNUSED_PRIVATE_CLASS_VARIABLE
|
||||
>> The class variable "_a" is declared but never used in the script.
|
||||
>> The class variable "_a" is declared but never used in the class.
|
||||
>> WARNING
|
||||
>> Line: 7
|
||||
>> UNUSED_PRIVATE_CLASS_VARIABLE
|
||||
>> The class variable "_d" is declared but never used in the script.
|
||||
>> The class variable "_d" is declared but never used in the class.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
signal s1()
|
||||
signal s2()
|
||||
signal s3()
|
||||
@warning_ignore("unused_signal")
|
||||
signal s4()
|
||||
|
||||
func no_exec():
|
||||
s1.emit()
|
||||
print(s2)
|
||||
|
||||
func test():
|
||||
pass
|
||||
@@ -0,0 +1,5 @@
|
||||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 3
|
||||
>> UNUSED_SIGNAL
|
||||
>> The signal "s3" is declared but never explicitly used in the class.
|
||||
@@ -1,2 +1,2 @@
|
||||
GDTEST_ANALYZER_ERROR
|
||||
GDTEST_PARSER_ERROR
|
||||
"@tool" annotation can only be used once.
|
||||
|
||||
@@ -4,6 +4,7 @@ class Parent:
|
||||
|
||||
var parent_variable := 2
|
||||
|
||||
@warning_ignore("unused_signal")
|
||||
signal parent_signal
|
||||
|
||||
var parent_attribute: int:
|
||||
|
||||
@@ -14,6 +14,7 @@ func test():
|
||||
print(v)
|
||||
print()
|
||||
|
||||
@warning_ignore("standalone_ternary")
|
||||
v=func(): print(2) if false else print(3)
|
||||
@warning_ignore("unsafe_cast")
|
||||
(v as Callable).call()
|
||||
|
||||
@@ -14,3 +14,6 @@ func test():
|
||||
print("This won't match")
|
||||
_:
|
||||
print("This will match")
|
||||
|
||||
match 0:
|
||||
pass
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#GDTEST_OK
|
||||
|
||||
# No parentheses.
|
||||
signal a
|
||||
|
||||
@@ -16,5 +14,15 @@ signal d(
|
||||
c,
|
||||
)
|
||||
|
||||
# With type hints.
|
||||
signal e(a: int, b: Variant, c: Node)
|
||||
|
||||
func no_exec():
|
||||
a.emit()
|
||||
b.emit()
|
||||
c.emit()
|
||||
d.emit()
|
||||
e.emit()
|
||||
|
||||
func test():
|
||||
print("Ok")
|
||||
|
||||
@@ -2,4 +2,4 @@ GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 8
|
||||
>> INCOMPATIBLE_TERNARY
|
||||
>> Values of the ternary conditional are not mutually compatible.
|
||||
>> Values of the ternary operator are not mutually compatible.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
func test():
|
||||
1 if true else 2
|
||||
print(1) if true else print(2)
|
||||
@@ -0,0 +1,10 @@
|
||||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 2
|
||||
>> STANDALONE_TERNARY
|
||||
>> Standalone ternary operator: the return value is being discarded.
|
||||
>> WARNING
|
||||
>> Line: 3
|
||||
>> STANDALONE_TERNARY
|
||||
>> Standalone ternary operator: the return value is being discarded.
|
||||
1
|
||||
@@ -56,6 +56,16 @@ signal test_signal_6(a: Resource, b: Array[Resource])
|
||||
signal test_signal_7(a: TestMemberInfo, b: Array[TestMemberInfo])
|
||||
signal test_signal_8(a: MyClass, b: Array[MyClass])
|
||||
|
||||
func no_exec():
|
||||
test_signal_1.emit()
|
||||
test_signal_2.emit()
|
||||
test_signal_3.emit()
|
||||
test_signal_4.emit()
|
||||
test_signal_5.emit()
|
||||
test_signal_6.emit()
|
||||
test_signal_7.emit()
|
||||
test_signal_8.emit()
|
||||
|
||||
func test():
|
||||
var script: Script = get_script()
|
||||
for property in script.get_property_list():
|
||||
|
||||
@@ -11,7 +11,9 @@ class A:
|
||||
static func test_static_func_a2(): pass
|
||||
func test_func_a1(): pass
|
||||
func test_func_a2(): pass
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_a1()
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_a2()
|
||||
|
||||
class B extends A:
|
||||
@@ -23,7 +25,9 @@ class B extends A:
|
||||
static func test_static_func_b2(): pass
|
||||
func test_func_b1(): pass
|
||||
func test_func_b2(): pass
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_b1()
|
||||
@warning_ignore("unused_signal")
|
||||
signal test_signal_b2()
|
||||
|
||||
func test():
|
||||
|
||||
Reference in New Issue
Block a user