[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