1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-28 16:07:14 +00:00

GDScript: Add CONFUSABLE_CAPTURE_REASSIGNMENT warning

This commit is contained in:
Danil Alexeev
2024-06-28 09:35:04 +03:00
parent cae2f853dc
commit 68898dbcc9
7 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
var member := 1
func test():
var number := 1
var string := "1"
var vector := Vector2i(1, 0)
var array_assign := [1]
var array_append := [1]
var f := func ():
member = 2
number = 2
string += "2"
vector.x = 2
array_assign = [2]
array_append.append(2)
var g := func ():
member = 3
number = 3
string += "3"
vector.x = 3
array_assign = [3]
array_append.append(3)
prints("g", member, number, string, vector, array_assign, array_append)
g.call()
prints("f", member, number, string, vector, array_assign, array_append)
f.call()
prints("test", member, number, string, vector, array_assign, array_append)

View File

@@ -0,0 +1,36 @@
GDTEST_OK
>> WARNING
>> Line: 11
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "number".
>> WARNING
>> Line: 12
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "string".
>> WARNING
>> Line: 13
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "vector".
>> WARNING
>> Line: 14
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "array_assign".
>> WARNING
>> Line: 18
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "number".
>> WARNING
>> Line: 19
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "string".
>> WARNING
>> Line: 20
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "vector".
>> WARNING
>> Line: 21
>> CONFUSABLE_CAPTURE_REASSIGNMENT
>> Reassigning lambda capture does not modify the outer local variable "array_assign".
g 3 3 123 (3, 0) [3] [1, 2, 3]
f 3 2 12 (2, 0) [2] [1, 2, 3]
test 3 1 1 (1, 0) [1] [1, 2, 3]

View File

@@ -9,6 +9,7 @@ func four_parameters(_a, callable : Callable, b=func(): print(10)):
func test():
var v
@warning_ignore("confusable_capture_reassignment")
v=func():v=1
if true: v=1
print(v)