[svn] r6450: nemerle/trunk: macros/assertions.n ncc/testsuite/positive/assert.n

nazgul svnadmin at nemerle.org
Sun Jul 16 15:29:39 CEST 2006


Log:
Make NotNull macro emit upcast, so generic parameter is handled correctly

Author: nazgul
Date: Sun Jul 16 15:29:35 2006
New Revision: 6450

Modified:
   nemerle/trunk/macros/assertions.n
   nemerle/trunk/ncc/testsuite/positive/assert.n

Modified: nemerle/trunk/macros/assertions.n
==============================================================================
--- nemerle/trunk/macros/assertions.n	(original)
+++ nemerle/trunk/macros/assertions.n	Sun Jul 16 15:29:35 2006
@@ -61,7 +61,7 @@
                        Inherited = true, AllowMultiple = false)]
   macro NotNull (_ : TypeBuilder, m : ParsedMethod, p : ParsedParameter)
   {
-    def assertion = <[ $(p.ParsedName : name) != null ]>;
+    def assertion = <[ $(p.ParsedName : name) : object != null ]>;
     
     m.Body = <[
       assert ($assertion, "The ``NotNull'' contract of parameter `" +

Modified: nemerle/trunk/ncc/testsuite/positive/assert.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/assert.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/assert.n	Sun Jul 16 15:29:35 2006
@@ -64,6 +64,9 @@
     }
   }
 
+  generic_foo [T] ([NotNull] _bar : T) : void {
+  }
+  
   myassert () : void {
     printf ("Testing the assertions...\n");
     
@@ -98,6 +101,8 @@
       | _ is AssertionException => 
         printf ("Assertion number 3 failed (wrong!)\n") 
     };
+    generic_foo (1);
+    generic_foo ("ss");
   }
   
   public Main () : void {



More information about the svn mailing list