diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-13 14:47:03 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-13 14:57:20 +0100 |
commit | 869a81a7a3f06f363ef52ef2e535b710681913d2 (patch) | |
tree | 803f8f72de1ea8f05b69a3b52defe2d27c2d3557 | |
parent | 563e4d794f6c4816b5448b35cf669451a67246a9 (diff) | |
download | vala-869a81a7a3f06f363ef52ef2e535b710681913d2.tar.gz |
vala: Check type-arguments in base-types/prerequisites of class/interface
Fixes https://gitlab.gnome.org/GNOME/vala/issues/404
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/generics/arrays-not-supported-2.test | 10 | ||||
-rw-r--r-- | tests/generics/arrays-not-supported-3.test | 10 | ||||
-rw-r--r-- | vala/valaclass.vala | 1 | ||||
-rw-r--r-- | vala/valainterface.vala | 1 |
5 files changed, 24 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 15d82e086..16820e66d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -653,6 +653,8 @@ TESTS = \ asynchronous/variadic-invalid-2.test \ asynchronous/yield.vala \ generics/arrays-not-supported.test \ + generics/arrays-not-supported-2.test \ + generics/arrays-not-supported-3.test \ generics/constructor-chain-up.vala \ generics/floating-type-cast.vala \ generics/inference-argument-may-fail.vala \ diff --git a/tests/generics/arrays-not-supported-2.test b/tests/generics/arrays-not-supported-2.test new file mode 100644 index 000000000..3682da652 --- /dev/null +++ b/tests/generics/arrays-not-supported-2.test @@ -0,0 +1,10 @@ +Invalid Code + +interface Foo<T> : Object { +} + +interface Bar : Object, Foo<int[]> { +} + +void main () { +} diff --git a/tests/generics/arrays-not-supported-3.test b/tests/generics/arrays-not-supported-3.test new file mode 100644 index 000000000..6ef20d35d --- /dev/null +++ b/tests/generics/arrays-not-supported-3.test @@ -0,0 +1,10 @@ +Invalid Code + +class Foo<T> : Object { +} + +class Bar : Foo<int[]> { +} + +void main () { +} diff --git a/vala/valaclass.vala b/vala/valaclass.vala index 3bf845847..ee2e7593d 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -572,6 +572,7 @@ public class Vala.Class : ObjectTypeSymbol { foreach (DataType type in base_types) { type.check (context); + context.analyzer.check_type (type); } foreach (TypeParameter p in get_type_parameters ()) { diff --git a/vala/valainterface.vala b/vala/valainterface.vala index 1e0cbdaa8..b48d5b8b0 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -202,6 +202,7 @@ public class Vala.Interface : ObjectTypeSymbol { foreach (DataType type in prerequisites) { type.check (context); + context.analyzer.check_type (type); } foreach (TypeParameter p in get_type_parameters ()) { |