@@ -77,26 +77,32 @@ extension AccessControlLevel: Comparable {
7777
7878extension AccessControlLevel {
7979
80- public var inheritedByMember : AccessControlLevel ? {
80+ public func inheritedByMember(
81+ maxAllowed: Self = . public
82+ ) -> Self ? {
8183 switch self {
8284 case . private:
8385 nil
8486 default :
85- self
87+ min ( self , maxAllowed )
8688 }
8789 }
8890
89- public var inheritedBySibling : AccessControlLevel {
91+ public func inheritedBySibling(
92+ maxAllowed: Self = . public
93+ ) -> Self {
9094 switch self {
9195 case . private:
92- . fileprivate
96+ min ( . fileprivate, maxAllowed )
9397 default :
94- self
98+ min ( self , maxAllowed )
9599 }
96100 }
97101
98- public var inheritedByPeer : AccessControlLevel {
99- self
102+ public func inheritedByPeer(
103+ maxAllowed: Self = . public
104+ ) -> Self {
105+ min ( self , maxAllowed)
100106 }
101107
102108 public static func forMember(
@@ -108,7 +114,7 @@ extension AccessControlLevel {
108114 from: declaration. accessControlLevel,
109115 preferred: preferred,
110116 maxAllowed: maxAllowed,
111- transform: \ . inheritedByMember
117+ transform: { $0 . inheritedByMember ( maxAllowed : maxAllowed ) }
112118 )
113119 }
114120
@@ -121,7 +127,7 @@ extension AccessControlLevel {
121127 from: syntax. accessControlLevel,
122128 preferred: preferred,
123129 maxAllowed: maxAllowed,
124- transform: \ . inheritedBySibling
130+ transform: { $0 . inheritedBySibling ( maxAllowed : maxAllowed ) }
125131 )
126132 }
127133
@@ -134,7 +140,7 @@ extension AccessControlLevel {
134140 from: syntax. accessControlLevel,
135141 preferred: preferred,
136142 maxAllowed: maxAllowed,
137- transform: \ . inheritedByPeer
143+ transform: { $0 . inheritedByPeer ( maxAllowed : maxAllowed ) }
138144 )
139145 }
140146
@@ -147,8 +153,7 @@ extension AccessControlLevel {
147153 if let preferred {
148154 return min ( preferred, maxAllowed)
149155 }
150- if var attached {
151- attached = min ( attached, maxAllowed)
156+ if let attached {
152157 return transform ( attached)
153158 }
154159 return nil
0 commit comments