[svn] r6225: nemerle/trunk/ncc: hierarchy/ClassMembers.n
testsuite/positive/access-checks.n
nazgul
svnadmin at nemerle.org
Thu May 4 22:47:11 CEST 2006
Log:
Fix protected accessibility from nested type
Author: nazgul
Date: Thu May 4 22:46:59 2006
New Revision: 6225
Modified:
nemerle/trunk/ncc/hierarchy/ClassMembers.n
nemerle/trunk/ncc/testsuite/positive/access-checks.n
Modified: nemerle/trunk/ncc/hierarchy/ClassMembers.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/ClassMembers.n (original)
+++ nemerle/trunk/ncc/hierarchy/ClassMembers.n Thu May 4 22:46:59 2006
@@ -104,15 +104,15 @@
name == "value__"
}
+ // does current member can be accessed from inside given type
public CanAccess (source : TypeInfo) : bool
{
IsPublic
|| IsInternal && source is TypeBuilder
- || IsProtected && Option.IsSome (source.SuperType (declaring_type))
|| ({
mutable result = false;
for (mutable tc = source; tc != null && !result; tc = tc.DeclaringType)
- result = tc.Equals (declaring_type);
+ result = tc.Equals (declaring_type) || IsProtected && Option.IsSome (tc.SuperType (declaring_type));
result
})
}
Modified: nemerle/trunk/ncc/testsuite/positive/access-checks.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/access-checks.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/access-checks.n Thu May 4 22:46:59 2006
@@ -47,6 +47,17 @@
}
}
+namespace Bug595 {
+ class Ax {
+ protected x : int = 6;
+ }
+ class Bx:Ax {
+ class Cx {
+ public foo(b : Bx) : void { _ = b.x; }
+ }
+ }
+}
+
namespace UninitializedSubtyping {
public class Test
{
More information about the svn
mailing list