[svn] r6464: nemerle/trunk: macros/Late.n
ncc/testsuite/positive/late.n
dragonfox
svnadmin at nemerle.org
Sun Jul 23 20:07:09 CEST 2006
Log:
fix late macro: static methods on generic classes; update late testcase
Author: dragonfox
Date: Sun Jul 23 20:07:07 2006
New Revision: 6464
Modified:
nemerle/trunk/macros/Late.n
nemerle/trunk/ncc/testsuite/positive/late.n
Modified: nemerle/trunk/macros/Late.n
==============================================================================
--- nemerle/trunk/macros/Late.n (original)
+++ nemerle/trunk/macros/Late.n Sun Jul 23 20:07:07 2006
@@ -154,6 +154,22 @@
public special(expr : PExpr) : bool
| PExpr.This => true
| PExpr.Base => true
+ | PExpr.Indexer(func, _) => match(Util.QidOfExpr(func))
+ | Some((id, name)) =>
+ def ctx = name.GetEnv(env)
+ if(ctx.LookupType(id) is Some(_))
+ true
+ else
+ false
+ | _ => false
+ | PExpr.GenericSpecifier(func, _) => match(Util.QidOfExpr(func))
+ | Some((id, name)) =>
+ def ctx = name.GetEnv(env)
+ if(ctx.LookupType(id) is Some(_))
+ true
+ else
+ false
+ | _ => false
| _ => match(Util.QidOfExpr(expr))
| Some((id, name)) =>
def ctx = name.GetEnv(env)
Modified: nemerle/trunk/ncc/testsuite/positive/late.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/late.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/late.n Sun Jul 23 20:07:07 2006
@@ -10,6 +10,10 @@
public Run () : void
System.Console.WriteLine ("Bar running")
+public class Gen[T]
+ public static Run () : void
+ System.Console.WriteLine ("Gen running with T = {0}", typeof(T).FullName)
+
def justRun (x : object)
late x.Run ()
@@ -18,6 +22,8 @@
late
Nemerle.IO.print ("Macros work\n")
_ = System.String ('A', 5)
+ Gen[System.Int32].Run ()
+ Gen.[System.Int64].Run ()
/*
OPTIONS: -i
@@ -26,5 +32,7 @@
Foo running
Bar running
Macros work
+Gen running with T = System.Int32
+Gen running with T = System.Int64
END-OUTPUT
*/
\ No newline at end of file
More information about the svn
mailing list