GDScript: Fix typing of lambda functions

This commit is contained in:
Dmitrii Maganov
2022-12-28 07:41:03 +02:00
parent b14f7aa9f9
commit 532ffc30bd
12 changed files with 65 additions and 26 deletions

View File

@@ -0,0 +1,4 @@
func test():
var lambda := func() -> int:
print('no return')
lambda.call()

View File

@@ -0,0 +1,2 @@
GDTEST_ANALYZER_ERROR
Not all code paths return a value.

View File

@@ -0,0 +1,4 @@
func test():
var lambda := func() -> int:
return 'string'
print(lambda.call())

View File

@@ -0,0 +1,2 @@
GDTEST_ANALYZER_ERROR
Cannot return value of type "String" because the function return type is "int".

View File

@@ -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))

View File

@@ -0,0 +1,4 @@
GDTEST_OK
0
1
2

View File

@@ -0,0 +1,6 @@
var shadow: int
func test():
var lambda := func(shadow: String) -> void:
print(shadow)
lambda.call('shadow')

View File

@@ -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

View File

@@ -0,0 +1,4 @@
func test():
var lambda := func(unused: Variant) -> void:
pass
lambda.call()

View File

@@ -0,0 +1,5 @@
GDTEST_OK
>> WARNING
>> Line: 2
>> UNUSED_PARAMETER
>>