+2006-12-15 Raja R Harinath <rharinath@novell.com>
+
+ * TypeBuilderTest.cs (MakeGenericType, Fail_MakeGenericType): New
+ tests inspired by #80253.
+
2006-09-16 Gert Driesen <drieseng@users.sourceforge.net>
* DynamicMethodTest.cs: Enabled tests for bug #79367.
//
using System;
+using System.Collections.Generic;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;
Assert ("a03", args [0].ContainsGenericParameters);
Assert ("a04", args [0].IsGenericParameter);
}
+
+ [Test]
+ public void MakeGenericType ()
+ {
+ TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);
+ tb.DefineGenericParameters ("T");
+
+ Type t1 = tb.MakeGenericType (typeof (int));
+ Assert ("g11", t1.IsGenericType);
+ Assert ("g12", !t1.IsGenericTypeDefinition);
+ Assert ("g13", !t1.ContainsGenericParameters);
+ Assert ("g14", !t1.IsGenericParameter);
+
+ Type t2 = tb.MakeGenericType (typeof (List<>).GetGenericArguments ());
+ Assert ("g21", t2.IsGenericType);
+ Assert ("g22", !t2.IsGenericTypeDefinition);
+ Assert ("g23", t2.ContainsGenericParameters);
+ Assert ("g24", !t2.IsGenericParameter);
+ }
+
+ [Test, ExpectedException (typeof (InvalidOperationException))]
+ public void Fail_MakeGenericType ()
+ {
+ TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);
+
+ Type t1 = tb.MakeGenericType (typeof (int));
+ }
#endif
}
}