[svn] r5790: nemerle/trunk: lib/internal.n ncc/generation/Typer4.n
ncc/hierarchy/MacroClassGen.n
nazgul
svnadmin at nemerle.org
Sun Oct 2 17:44:53 CEST 2005
Log:
Use Identity in macro class generation - FirstClassFunctions goes down from 157 to 46
Author: nazgul
Date: Sun Oct 2 17:44:47 2005
New Revision: 5790
Modified:
nemerle/trunk/lib/internal.n
nemerle/trunk/ncc/generation/Typer4.n
nemerle/trunk/ncc/hierarchy/MacroClassGen.n
Modified: nemerle/trunk/lib/internal.n
==============================================================================
--- nemerle/trunk/lib/internal.n (original)
+++ nemerle/trunk/lib/internal.n Sun Oct 2 17:44:47 2005
@@ -153,3 +153,16 @@
}
}
}
+
+namespace Nemerle.Utility
+{
+ public class Identity ['a, 'b] : IntTypes.FuncNew1 ['a, 'b] where 'a : 'b
+ {
+ // do not work :/
+ //public static Instance : Identity ['a, 'b] = Identity.['a, 'b] ();
+
+ public override apply (x : 'a) : 'b {
+ x
+ }
+ }
+}
Modified: nemerle/trunk/ncc/generation/Typer4.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer4.n (original)
+++ nemerle/trunk/ncc/generation/Typer4.n Sun Oct 2 17:44:47 2005
@@ -113,7 +113,6 @@
&& (!target_type.IsValueType && !(target_type is MType.TyVarRef)
) ||
(src is MType.TyVarRef && !target_type.IsValueType)
-
}
Modified: nemerle/trunk/ncc/hierarchy/MacroClassGen.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/MacroClassGen.n (original)
+++ nemerle/trunk/ncc/hierarchy/MacroClassGen.n Sun Oct 2 17:44:47 2005
@@ -726,8 +726,9 @@
});
// for identity we can return much simpler function
if (is_identity != int.MaxValue)
-// <[ Nemerle.Identity () ]>
- <[ fun (x) { x } ]>
+ <[ (Nemerle.Utility.Identity.[list [SyntaxElement], list [SyntaxElement]] () : object) :>
+ list [SyntaxElement] -> list [SyntaxElement] ]>
+ // <[ fun (x) { x } ]>
else {
def plen = positions.Length;
More information about the svn
mailing list