Fix GDScript base and outer classes, signals and functions lookup order

- Add outer class lookup test
- Add signal lookup test

Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
This commit is contained in:
Adam Scott
2022-12-18 00:38:53 -05:00
parent d3fc9d9e41
commit fb175d92da
15 changed files with 269 additions and 87 deletions
@@ -0,0 +1,8 @@
class Outer:
const OUTER_CONST: = 0
class Inner:
pass
func test() -> void:
var type: = Outer.Inner
print(type.OUTER_CONST)
@@ -0,0 +1,6 @@
GDTEST_RUNTIME_ERROR
>> SCRIPT ERROR
>> on function: test()
>> analyzer/errors/outer_class_constants.gd
>> 8
>> Invalid get index 'OUTER_CONST' (on base: 'GDScript').
@@ -0,0 +1,9 @@
class Outer:
const OUTER_CONST: = 0
class Inner:
pass
func test() -> void:
var type: = Outer.Inner
var type_v: Variant = type
print(type_v.OUTER_CONST)
@@ -0,0 +1,6 @@
GDTEST_RUNTIME_ERROR
>> SCRIPT ERROR
>> on function: test()
>> analyzer/errors/outer_class_constants_as_variant.gd
>> 9
>> Invalid get index 'OUTER_CONST' (on base: 'GDScript').
@@ -0,0 +1,8 @@
class Outer:
const OUTER_CONST: = 0
class Inner:
pass
func test() -> void:
var instance: = Outer.Inner.new()
print(instance.OUTER_CONST)
@@ -0,0 +1,6 @@
GDTEST_RUNTIME_ERROR
>> SCRIPT ERROR
>> on function: test()
>> analyzer/errors/outer_class_instance_constants.gd
>> 8
>> Invalid get index 'OUTER_CONST' (on base: 'RefCounted (Inner)').
@@ -0,0 +1,9 @@
class Outer:
const OUTER_CONST: = 0
class Inner:
pass
func test() -> void:
var instance: = Outer.Inner.new()
var instance_v: Variant = instance
print(instance_v.OUTER_CONST)
@@ -0,0 +1,6 @@
GDTEST_RUNTIME_ERROR
>> SCRIPT ERROR
>> on function: test()
>> analyzer/errors/outer_class_instance_constants_as_variant.gd
>> 9
>> Invalid get index 'OUTER_CONST' (on base: 'RefCounted (Inner)').