[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