GDScript: Report property type errors

Inline getters & setters are now FunctionNodes.
Their names are set in the parser, not in the compiler.
GDScript-Analyzer will now run through getter and setter.
Also report wrong type or signature errors regarding getset properties.
Added GDScript tests for getters and setters.
#53102
This commit is contained in:
ZuBsPaCe
2021-09-06 07:04:43 +02:00
parent 58aa020a19
commit 551ceb590b
17 changed files with 291 additions and 106 deletions

View File

@@ -0,0 +1,46 @@
# Untyped inline property
var prop1:
get:
return prop1
set(value):
prop1 = value
# Typed inline property
var prop2 : int:
get:
return prop2
set(value):
prop2 = value
# Typed inline property with default value
var prop3 : int = 1:
get:
return prop3
set(value):
prop3 = value
# Typed inline property with backing variable
var _prop4 : int = 2
var prop4: int:
get:
return _prop4
set(value):
_prop4 = value
func test():
print(prop1)
print(prop2)
print(prop3)
print(prop4)
print()
prop1 = 1
prop2 = 2
prop3 = 3
prop4 = 4
print(prop1)
print(prop2)
print(prop3)
print(prop4)