Skip to content

Commit 4d647d5

Browse files
committed
-
1 parent dd5d1aa commit 4d647d5

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

Sources/PrincipleMacros/Syntax/Concepts/AccessControlLevel.swift

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,32 @@ extension AccessControlLevel: Comparable {
7777

7878
extension 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

Comments
 (0)