@@ -4,45 +4,20 @@ public static class AccessibilityCheck
44 {
55 public static bool IsAccessible ( Declaration callingProject , Declaration callingModule , Declaration callingParent , Declaration callee )
66 {
7- if ( callee == null )
8- {
9- return false ;
10- }
11- else if ( callee . DeclarationType . HasFlag ( DeclarationType . Project ) )
12- {
13- return true ;
14- }
15- else if ( callee . DeclarationType . HasFlag ( DeclarationType . Module ) )
16- {
17- return IsModuleAccessible ( callingProject , callingModule , callee ) ;
18- }
19- else
20- {
21- return IsMemberAccessible ( callingProject , callingModule , callingParent , callee ) ;
22- }
7+ return callee != null
8+ && ( callee . DeclarationType . HasFlag ( DeclarationType . Project )
9+ || ( callee . DeclarationType . HasFlag ( DeclarationType . Module ) && IsModuleAccessible ( callingProject , callingModule , callee ) )
10+ || ( ! callee . DeclarationType . HasFlag ( DeclarationType . Module ) && IsMemberAccessible ( callingProject , callingModule , callingParent , callee ) ) ) ;
2311 }
2412
2513
2614 public static bool IsModuleAccessible ( Declaration callingProject , Declaration callingModule , Declaration calleeModule )
2715 {
28- if ( calleeModule == null )
29- {
30- return false ;
31- }
32- else if ( IsTheSameModule ( callingModule , calleeModule ) || IsEnclosingProject ( callingProject , calleeModule ) )
33- {
34- return true ;
35- }
36- else if ( calleeModule . DeclarationType . HasFlag ( DeclarationType . ProceduralModule ) )
37- {
38- bool isPrivate = ( ( ProceduralModuleDeclaration ) calleeModule ) . IsPrivateModule ;
39- return ! isPrivate ;
40- }
41- else
42- {
43- bool isExposed = ( ( ClassModuleDeclaration ) calleeModule ) . IsExposed ;
44- return isExposed ;
45- }
16+ return calleeModule != null
17+ && ( IsTheSameModule ( callingModule , calleeModule )
18+ || IsEnclosingProject ( callingProject , calleeModule )
19+ || ( calleeModule . DeclarationType . HasFlag ( DeclarationType . ProceduralModule ) && ! ( ( ProceduralModuleDeclaration ) calleeModule ) . IsPrivateModule )
20+ || ( ! calleeModule . DeclarationType . HasFlag ( DeclarationType . ProceduralModule ) && ( ( ClassModuleDeclaration ) calleeModule ) . IsExposed ) ) ;
4621 }
4722
4823 private static bool IsTheSameModule ( Declaration callingModule , Declaration calleeModule )
@@ -63,34 +38,17 @@ public static bool IsMemberAccessible(Declaration callingProject, Declaration ca
6338 {
6439 return false ;
6540 }
66- else if ( IsEnclosingModuleOfInstanceMember ( callingModule , calleeMember ) )
67- {
68- return true ;
69- }
70- else if ( IsLocalMemberOfTheCallingSubroutineOrProperty ( callingParent , calleeMember ) )
41+ if ( IsEnclosingModuleOfInstanceMember ( callingModule , calleeMember )
42+ || IsLocalMemberOfTheCallingSubroutineOrProperty ( callingParent , calleeMember ) )
7143 {
7244 return true ;
7345 }
7446 var memberModule = Declaration . GetModuleParent ( calleeMember ) ;
75- if ( IsModuleAccessible ( callingProject , callingModule , memberModule ) )
76- {
77- if ( calleeMember . DeclarationType . HasFlag ( DeclarationType . EnumerationMember ) || calleeMember . DeclarationType . HasFlag ( DeclarationType . UserDefinedTypeMember ) )
78- {
79- return true ;
80- }
81- else if ( IsEnclosingProject ( callingProject , memberModule ) && IsAccessibleThroughoutTheSameProject ( calleeMember ) )
82- {
83- return true ;
84- }
85- else
86- {
87- return HasPublicScope ( calleeMember ) ;
88- }
89- }
90- else
91- {
92- return false ;
93- }
47+ return IsModuleAccessible ( callingProject , callingModule , memberModule )
48+ && ( calleeMember . DeclarationType . HasFlag ( DeclarationType . EnumerationMember )
49+ || calleeMember . DeclarationType . HasFlag ( DeclarationType . UserDefinedTypeMember )
50+ || HasPublicScope ( calleeMember )
51+ || ( IsEnclosingProject ( callingProject , memberModule ) && IsAccessibleThroughoutTheSameProject ( calleeMember ) ) ) ;
9452 }
9553
9654 private static bool IsEnclosingModuleOfInstanceMember ( Declaration callingModule , Declaration calleeMember )
0 commit comments