GDScript: Fix false positive REDUNDANT_AWAIT warning

This commit is contained in:
Danil Alexeev
2023-03-15 22:11:02 +03:00
parent bdefdc866b
commit c0eeb32e38
5 changed files with 93 additions and 3 deletions

View File

@@ -0,0 +1,53 @@
signal my_signal()
# CI cannot test async things.
func test_signals():
await my_signal
var t: Signal = my_signal
await t
func coroutine() -> void:
@warning_ignore("redundant_await")
await 0
func not_coroutine_variant():
pass
func not_coroutine_void() -> void:
pass
func test():
const CONST_NULL = null
var var_null = null
var var_int: int = 1
var var_variant: Variant = 1
var var_array: Array = [1]
await CONST_NULL
await var_null
await var_int
await var_variant
await var_array[0]
await coroutine
await coroutine()
await coroutine.call()
await self.coroutine()
await call(&"coroutine")
await not_coroutine_variant
await not_coroutine_variant()
await self.not_coroutine_variant()
await not_coroutine_variant.call()
await call(&"not_coroutine_variant")
await not_coroutine_void
await not_coroutine_void()
await self.not_coroutine_void()
await not_coroutine_void.call()
await call(&"not_coroutine_void")
var callable: Callable = coroutine
await callable
await callable.call()
await callable.get_method()

View File

@@ -0,0 +1,37 @@
GDTEST_OK
>> WARNING
>> Line: 26
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 28
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 32
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 38
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 44
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 45
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 46
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 51
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.
>> WARNING
>> Line: 53
>> REDUNDANT_AWAIT
>> "await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.