From: Jürg Billeter Date: Tue, 20 Oct 2009 20:08:52 +0000 (+0200) Subject: Check number of generic type arguments of base types X-Git-Tag: 0.7.8~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4fc5cbe2237df03fc4c5e94b5790380f1215df01;p=thirdparty%2Fvala.git Check number of generic type arguments of base types Fixes bug 598658. --- diff --git a/vala/valaclass.vala b/vala/valaclass.vala index d324b1882..7b3f3ef28 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -974,6 +974,18 @@ public class Vala.Class : ObjectTypeSymbol { Report.error (source_reference, "base type `%s` is less accessible than class `%s`".printf (base_type_reference.to_string (), get_full_name ())); return false; } + + int n_type_args = base_type_reference.get_type_arguments ().size; + int n_type_params = ((ObjectTypeSymbol) base_type_reference.data_type).get_type_parameters ().size; + if (n_type_args < n_type_params) { + error = true; + Report.error (base_type_reference.source_reference, "too few type arguments"); + return false; + } else if (n_type_args > n_type_params) { + error = true; + Report.error (base_type_reference.source_reference, "too many type arguments"); + return false; + } } foreach (DataType type in base_types) {