GDScript: Fix typing of lambda functions
This commit is contained in:
@@ -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
|
||||
>>
|
||||
Reference in New Issue
Block a user