@@ -15,14 +15,43 @@ extension UCF
15
15
}
16
16
extension UCF . ResolvableOverload
17
17
{
18
- static func ~= ( suffix : UCF . Selector . Suffix , self: Self ) -> Bool
18
+ static func ~= ( predicate : UCF . Predicate , self: Self ) -> Bool
19
19
{
20
+ if predicate. hasEmptyTrailingParentheses
21
+ {
22
+ switch self . phylum
23
+ {
24
+ case . actor : return false
25
+ case . associatedtype: return false
26
+ case . case: return false
27
+ case . class: return false
28
+ case . deinitializer: return false
29
+ case . enum: return false
30
+ case . func: break
31
+ case . initializer: break
32
+ case . macro: break
33
+ case . operator: break
34
+ case . protocol: return false
35
+ case . struct: return false
36
+ case . subscript: break
37
+ case . typealias: return false
38
+ case . var: return false
39
+ }
40
+ }
41
+
42
+ guard
43
+ let suffix: UCF . Selector . Suffix = predicate. suffix
44
+ else
45
+ {
46
+ return true
47
+ }
48
+
20
49
switch suffix
21
50
{
22
- case . legacy( let filter, nil ) : filter ~= self . phylum
23
- case . legacy( _, let hash? ) : hash == self . hash
24
- case . hash( let hash) : hash == self . hash
25
- case . filter( let filter) : filter ~= self . phylum
51
+ case . legacy( let filter, nil ) : return filter ~= self . phylum
52
+ case . legacy( _, let hash? ) : return hash == self . hash
53
+ case . hash( let hash) : return hash == self . hash
54
+ case . filter( let filter) : return filter ~= self . phylum
26
55
}
27
56
}
28
57
}
0 commit comments