2003-09-07 Martin Baulig <martin@ximian.com>
authorMartin Baulig <martin@novell.com>
Sun, 7 Sep 2003 16:08:21 +0000 (16:08 -0000)
committerMartin Baulig <martin@novell.com>
Sun, 7 Sep 2003 16:08:21 +0000 (16:08 -0000)
* generic.cs (ConstructedType.ResolveAsTypeStep): Report a CS8217
if the number of type parameters doesn't match.

svn path=/trunk/mcs/; revision=17972

mcs/gmcs/ChangeLog
mcs/gmcs/generic.cs

index 3d68a11bd905db13847ac33cca2f4b8c318425d1..0449242d0f15995a87cb51e516f918e05e0fe698 100755 (executable)
@@ -1,3 +1,8 @@
+2003-09-07  Martin Baulig  <martin@ximian.com>
+
+       * generic.cs (ConstructedType.ResolveAsTypeStep): Report a CS8217
+       if the number of type parameters doesn't match.
+
 2003-09-04  Martin Baulig  <martin@ximian.com>
 
        * expression.cs (ComposedCast.ResolveAsTypeStep): Added support
index 3d68e623849eab84c32b4112c571f68a5130208b..816246adeb489ca77c39308902eb8443cf3288be 100644 (file)
@@ -220,6 +220,14 @@ namespace Mono.CSharp {
 
                        Type gt = resolved.Type.GetGenericTypeDefinition ();
 
+                       Type[] gen_params = gt.GetGenericParameters ();
+                       if (args.Arguments.Length != gen_params.Length) {
+                               Report.Error (-217, loc, "Generic type `" + gt.Name + "' takes " +
+                                             gen_params.Length + " type parameters, but specified " +
+                                             args.Arguments.Length + ".");
+                               return null;
+                       }
+
                        //
                        // Now bind the parameters.
                        //