From: Rico Tzschichholz Date: Sat, 13 Feb 2021 13:47:03 +0000 (+0100) Subject: vala: Check type-arguments in base-types/prerequisites of class/interface X-Git-Tag: 0.51.2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=869a81a7a3f06f363ef52ef2e535b710681913d2;p=thirdparty%2Fvala.git vala: Check type-arguments in base-types/prerequisites of class/interface Fixes https://gitlab.gnome.org/GNOME/vala/issues/404 --- 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 : Object { +} + +interface Bar : Object, Foo { +} + +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 : Object { +} + +class Bar : Foo { +} + +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 ()) {