Index: src/Boo.Lang.Compiler/Steps/ProcessMethodBodies.cs =================================================================== --- src/Boo.Lang.Compiler/Steps/ProcessMethodBodies.cs (revision 2137) +++ src/Boo.Lang.Compiler/Steps/ProcessMethodBodies.cs (working copy) @@ -3088,7 +3088,7 @@ // declaration ReferenceExpression reference = (ReferenceExpression)node.Left; IEntity info = NameResolutionService.Resolve(reference.Name); - if (null == info || TypeSystemServices.IsBuiltin(info)) + if (null == info || TypeSystemServices.IsBuiltin(info) || IsInaccessible(info)) { Visit(node.Right); IType expressionType = MapNullToObject(GetConcreteExpressionType(node.Right)); @@ -3103,6 +3103,17 @@ return true; } + bool IsInaccessible(IEntity info) + { + IAccessibleMember accessible = info as IAccessibleMember; + if (accessible != null && accessible.IsPrivate + && accessible.DeclaringType != CurrentType) + { + return true; + } + return false; + } + override public void LeaveBinaryExpression(BinaryExpression node) { if (TypeSystemServices.IsUnknown(node.Left) ||