GDScript: Fix typing of lambda functions
This commit is contained in:
parent
b14f7aa9f9
commit
532ffc30bd
12 changed files with 65 additions and 26 deletions
|
|
@ -0,0 +1,4 @@
|
|||
func test():
|
||||
var lambda := func() -> int:
|
||||
print('no return')
|
||||
lambda.call()
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
GDTEST_ANALYZER_ERROR
|
||||
Not all code paths return a value.
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
func test():
|
||||
var lambda := func() -> int:
|
||||
return 'string'
|
||||
print(lambda.call())
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
GDTEST_ANALYZER_ERROR
|
||||
Cannot return value of type "String" because the function return type is "int".
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
func test():
|
||||
var lambda_0 := func() -> void:
|
||||
print(0)
|
||||
lambda_0.call()
|
||||
|
||||
var lambda_1 := func(printed: int) -> void:
|
||||
print(printed)
|
||||
lambda_1.call(1)
|
||||
|
||||
var lambda_2 := func(identity: int) -> int:
|
||||
return identity
|
||||
print(lambda_2.call(2))
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
GDTEST_OK
|
||||
0
|
||||
1
|
||||
2
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
var shadow: int
|
||||
|
||||
func test():
|
||||
var lambda := func(shadow: String) -> void:
|
||||
print(shadow)
|
||||
lambda.call('shadow')
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 4
|
||||
>> SHADOWED_VARIABLE
|
||||
>> The local function parameter "shadow" is shadowing an already-declared variable at line 1.
|
||||
shadow
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
func test():
|
||||
var lambda := func(unused: Variant) -> void:
|
||||
pass
|
||||
lambda.call()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 2
|
||||
>> UNUSED_PARAMETER
|
||||
>>
|
||||
Loading…
Add table
Add a link
Reference in a new issue