]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Report error when number of type arguments does not match
authorJürg Billeter <j@bitron.ch>
Sun, 21 Mar 2010 10:08:26 +0000 (11:08 +0100)
committerJürg Billeter <j@bitron.ch>
Sun, 21 Mar 2010 10:08:26 +0000 (11:08 +0100)
vala/valaobjecttype.vala

index e4556e5a3f004b92ad135f1007baae1b20a4f545..bffc280238555355e7344e29797c4e0ef79a196d 100644 (file)
@@ -1,6 +1,6 @@
 /* valaobjecttype.vala
  *
- * Copyright (C) 2007-2008  Jürg Billeter
+ * Copyright (C) 2007-2010  Jürg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -100,6 +100,19 @@ public class Vala.ObjectType : ReferenceType {
        }
 
        public override bool check (SemanticAnalyzer analyzer) {
-               return type_symbol.check (analyzer);
+               if (!type_symbol.check (analyzer)) {
+                       return false;
+               }
+
+               int n_type_args = get_type_arguments ().size;
+               if (n_type_args > 0 && n_type_args < type_symbol.get_type_parameters ().size) {
+                       Report.error (source_reference, "too few type arguments");
+                       return false;
+               } else if (n_type_args > 0 && n_type_args > type_symbol.get_type_parameters ().size) {
+                       Report.error (source_reference, "too many type arguments");
+                       return false;
+               }
+
+               return true;
        }
 }