[svn] r7676: nemerle/trunk: macros/core.n ncc/external/LibrariesLoader.n ncc/hierarchy/BuiltinMethod.n ncc...

nazgul svnadmin at nemerle.org
Sun May 13 13:45:27 CEST 2007


Log:
Prevent copying private ctors in Record

Author: nazgul
Date: Sun May 13 13:45:24 2007
New Revision: 7676

Modified:
   nemerle/trunk/macros/core.n
   nemerle/trunk/ncc/external/LibrariesLoader.n
   nemerle/trunk/ncc/hierarchy/BuiltinMethod.n
   nemerle/trunk/ncc/hierarchy/TypeInfo.n
   nemerle/trunk/ncc/testsuite/positive/ctor-default-param.n

Modified: nemerle/trunk/macros/core.n
==============================================================================
--- nemerle/trunk/macros/core.n	(original)
+++ nemerle/trunk/macros/core.n	Sun May 13 13:45:24 2007
@@ -587,8 +587,8 @@
           if (base_ctor == null)
             ([], if (is_value_type) <[ () ]> else <[ base () ]>)
           else {
-            def callparms = base_ctor.GetHeader ().ParametersReferences;
-            (base_ctor.GetHeader ().ParametersDeclarations, 
+            def callparms = base_ctor.Header.ParametersReferences;
+            (base_ctor.Header.ParametersDeclarations, 
              <[ base (..$callparms) ]>)
           };
 
@@ -626,7 +626,7 @@
         make_ctor (true, null)
       else if (par.BaseType != null) {
         def ctors = par.BaseType.GetConstructors (MacrosHelper.InstanceFlags);
-        foreach (x in ctors) 
+        foreach (x when !x.IsPrivate in ctors) 
           make_ctor (false, x)
       }
       else 

Modified: nemerle/trunk/ncc/external/LibrariesLoader.n
==============================================================================
--- nemerle/trunk/ncc/external/LibrariesLoader.n	(original)
+++ nemerle/trunk/ncc/external/LibrariesLoader.n	Sun May 13 13:45:24 2007
@@ -1811,6 +1811,7 @@
     internal class MethodInfo : ExternalMemberInfo, IMethod
     {
       protected handle : SR.MethodBase;
+      [Accessor (Header)]
       protected fun_header : Fun_header;
       protected is_var_args : bool;
       

Modified: nemerle/trunk/ncc/hierarchy/BuiltinMethod.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/BuiltinMethod.n	(original)
+++ nemerle/trunk/ncc/hierarchy/BuiltinMethod.n	Sun May 13 13:45:24 2007
@@ -34,6 +34,7 @@
   class BuiltinMethod : IMethod
   {
     id : int;
+    [Nemerle.Utility.Accessor]
     protected header : Fun_header;
     declaring : TypeInfo;
     special_kind : BuiltinMethodKind;
@@ -144,6 +145,7 @@
       get { true }
     }
 
+    public IsPrivate : bool   {      get { false }    }
     public IsAbstract : bool   {      get { false }    }
     public IsObsolete : bool
     {

Modified: nemerle/trunk/ncc/hierarchy/TypeInfo.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeInfo.n	(original)
+++ nemerle/trunk/ncc/hierarchy/TypeInfo.n	Sun May 13 13:45:24 2007
@@ -71,6 +71,7 @@
   GetHandle () : System.Reflection.MemberInfo;
   CanAccess (source : TypeInfo) : bool;
   IsObsolete : bool { get; }
+  IsPrivate : bool { get; }
 
   /* public properties */
   DeclaringType : TypeInfo {get;}
@@ -105,6 +106,7 @@
 public interface IMethod : IMember
 {
   GetFreshType () : MType * list [TyVar];
+  Header : Fun_header { get; }
   GetHeader () : Fun_header;
   GetMethodBase () : System.Reflection.MethodBase;
   GetMethodInfo () : System.Reflection.MethodInfo;

Modified: nemerle/trunk/ncc/testsuite/positive/ctor-default-param.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/ctor-default-param.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/ctor-default-param.n	Sun May 13 13:45:24 2007
@@ -14,6 +14,15 @@
   mutable x : string;
 }
 
+class Base {
+  private this (_ : int) {}
+  public this () {}
+}
+[Record] 
+class Inh : Base {
+  x : int
+};
+
 /*
 BEGIN-OUTPUT
 3



More information about the svn mailing list