diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-13 14:47:03 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-27 20:19:14 +0100 |
commit | f2b54885bd656c34a7b7c4de6b885886e44d66d0 (patch) | |
tree | 4b8a61e935f98abcd012cf544802419f9b559713 | |
parent | e4d38adf885e5bc5760b7ec03fab5ce99b06bd12 (diff) | |
download | vala-f2b54885bd656c34a7b7c4de6b885886e44d66d0.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 1655968e7..fccba9159 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -649,6 +649,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 33e9b113e..194e3a8e5 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -570,6 +570,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 8da00f446..06b7ee7e7 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 ()) { |