Log:
Get generic type definition when creating NetType
Author: nazgul
Date: Fri Nov 10 00:05:39 2006
New Revision: 6860
Modified:
nemerle/trunk/ncc/external/Codec.n
nemerle/trunk/ncc/external/LibrariesLoader.n
Modified: nemerle/trunk/ncc/external/Codec.n
==============================================================================
--- nemerle/trunk/ncc/external/Codec.n (original)
+++ nemerle/trunk/ncc/external/Codec.n Fri Nov 10 00:05:39 2006
@@ -128,7 +128,7 @@
def vars = _t.GetGenericArguments ();
foreach (gparm in vars) {
- def tv = StaticTyVar (ManagerClass.Instance, gparm.Name, gparm);
+ def tv = StaticTyVar (_lib.Manager, gparm.Name, gparm);
tyvars = tv :: tyvars;
tenv = tenv.Replace (gparm.Name, tv)
}
@@ -222,7 +222,7 @@
def vars = meth.GetGenericArguments ();
foreach (gparm in vars) {
- def tv = StaticTyVar (ManagerClass.Instance, gparm.Name, gparm);
+ def tv = StaticTyVar (lib.Manager, gparm.Name, gparm);
tyvars = tv :: tyvars;
tenv = tenv.Replace (gparm.Name, tv)
}
Modified: nemerle/trunk/ncc/external/LibrariesLoader.n
==============================================================================
--- nemerle/trunk/ncc/external/LibrariesLoader.n (original)
+++ nemerle/trunk/ncc/external/LibrariesLoader.n Fri Nov 10 00:05:39 2006
@@ -707,6 +707,8 @@
LibraryReferenceManager.CacheTypeInfo (h, this, ns_node);
library = lib;
system_type = h;
+ when (system_type.IsGenericType && !system_type.IsGenericTypeDefinition)
+ system_type = system_type.GetGenericTypeDefinition ();
when (system_type.DeclaringType != null)
tenv = (lib.TypeInfoOfType (system_type.DeclaringType) :> NetType).tenv;