From a1e0281b45ccea94c679800e22377fc1a2536de1 Mon Sep 17 00:00:00 2001 From: Dmitrii Maganov Date: Fri, 13 Jan 2023 20:51:29 +0200 Subject: GDScript: Disallow type inference with untyped initializer --- .../analyzer/errors/inferring_with_weak_type_local_variable.gd | 3 +++ .../analyzer/errors/inferring_with_weak_type_local_variable.out | 2 ++ .../analyzer/errors/inferring_with_weak_type_member_variable.gd | 5 +++++ .../analyzer/errors/inferring_with_weak_type_member_variable.out | 2 ++ .../scripts/analyzer/errors/inferring_with_weak_type_parameter.gd | 5 +++++ .../scripts/analyzer/errors/inferring_with_weak_type_parameter.out | 2 ++ 6 files changed, 19 insertions(+) create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.gd create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.out create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.gd create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.out create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.gd create mode 100644 modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.out (limited to 'modules/gdscript/tests/scripts/analyzer/errors') diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.gd b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.gd new file mode 100644 index 0000000000..6014ee831c --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.gd @@ -0,0 +1,3 @@ +func test(): + var untyped = 1 + var inferred := untyped diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.out b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.out new file mode 100644 index 0000000000..b6dc6d0b01 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_local_variable.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot infer the type of "inferred" variable because the value doesn't have a set type. diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.gd b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.gd new file mode 100644 index 0000000000..040aa2e82a --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.gd @@ -0,0 +1,5 @@ +var untyped = 1 +var inferred := untyped + +func test(): + pass diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.out b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.out new file mode 100644 index 0000000000..b6dc6d0b01 --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_member_variable.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot infer the type of "inferred" variable because the value doesn't have a set type. diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.gd b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.gd new file mode 100644 index 0000000000..80c676488e --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.gd @@ -0,0 +1,5 @@ +func check(untyped = 1, inferred := untyped): + pass + +func test(): + check() diff --git a/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.out b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.out new file mode 100644 index 0000000000..8c9f0c13ae --- /dev/null +++ b/modules/gdscript/tests/scripts/analyzer/errors/inferring_with_weak_type_parameter.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +Cannot infer the type of "inferred" parameter because the value doesn't have a set type. -- cgit v1.2.3