[vala] Check number of generic type arguments of base types



commit 4fc5cbe2237df03fc4c5e94b5790380f1215df01
Author: Jürg Billeter <j bitron ch>
Date:   Tue Oct 20 22:08:52 2009 +0200

    Check number of generic type arguments of base types
    
    Fixes bug 598658.

 vala/valaclass.vala |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/vala/valaclass.vala b/vala/valaclass.vala
index d324b18..7b3f3ef 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) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]