@@ -103,6 +103,86 @@ llvm::StringRef swift::getProtocolName(KnownProtocolKind kind) {
103
103
#undef PROTOCOL_WITH_NAME
104
104
}
105
105
106
+ bool swift::isSuppressibleProtocol (KnownProtocolKind kind) {
107
+ switch (kind) {
108
+ case KnownProtocolKind::Copyable:
109
+ return true ;
110
+
111
+ case KnownProtocolKind::Actor:
112
+ case KnownProtocolKind::AnyActor:
113
+ case KnownProtocolKind::Sequence:
114
+ case KnownProtocolKind::Identifiable:
115
+ case KnownProtocolKind::IteratorProtocol:
116
+ case KnownProtocolKind::RawRepresentable:
117
+ case KnownProtocolKind::Equatable:
118
+ case KnownProtocolKind::Hashable:
119
+ case KnownProtocolKind::Comparable:
120
+ case KnownProtocolKind::Error:
121
+ case KnownProtocolKind::ErrorCodeProtocol:
122
+ case KnownProtocolKind::Executor:
123
+ case KnownProtocolKind::OptionSet:
124
+ case KnownProtocolKind::CaseIterable:
125
+ case KnownProtocolKind::SIMD:
126
+ case KnownProtocolKind::SIMDScalar:
127
+ case KnownProtocolKind::BinaryInteger:
128
+ case KnownProtocolKind::FixedWidthInteger:
129
+ case KnownProtocolKind::RangeReplaceableCollection:
130
+ case KnownProtocolKind::SerialExecutor:
131
+ case KnownProtocolKind::GlobalActor:
132
+ case KnownProtocolKind::BridgedNSError:
133
+ case KnownProtocolKind::BridgedStoredNSError:
134
+ case KnownProtocolKind::CFObject:
135
+ case KnownProtocolKind::SwiftNewtypeWrapper:
136
+ case KnownProtocolKind::CodingKey:
137
+ case KnownProtocolKind::Encodable:
138
+ case KnownProtocolKind::Decodable:
139
+ case KnownProtocolKind::Sendable:
140
+ case KnownProtocolKind::UnsafeSendable:
141
+ case KnownProtocolKind::ObjectiveCBridgeable:
142
+ case KnownProtocolKind::DestructorSafeContainer:
143
+ case KnownProtocolKind::StringInterpolationProtocol:
144
+ case KnownProtocolKind::AdditiveArithmetic:
145
+ case KnownProtocolKind::Differentiable:
146
+ case KnownProtocolKind::DistributedActor:
147
+ case KnownProtocolKind::DistributedActorSystem:
148
+ case KnownProtocolKind::DistributedTargetInvocationEncoder:
149
+ case KnownProtocolKind::DistributedTargetInvocationDecoder:
150
+ case KnownProtocolKind::DistributedTargetInvocationResultHandler:
151
+ case KnownProtocolKind::CxxConvertibleToCollection:
152
+ case KnownProtocolKind::CxxDictionary:
153
+ case KnownProtocolKind::CxxOptional:
154
+ case KnownProtocolKind::CxxPair:
155
+ case KnownProtocolKind::CxxSet:
156
+ case KnownProtocolKind::CxxRandomAccessCollection:
157
+ case KnownProtocolKind::CxxSequence:
158
+ case KnownProtocolKind::UnsafeCxxInputIterator:
159
+ case KnownProtocolKind::UnsafeCxxRandomAccessIterator:
160
+ case KnownProtocolKind::AsyncSequence:
161
+ case KnownProtocolKind::AsyncIteratorProtocol:
162
+ case KnownProtocolKind::FloatingPoint:
163
+ case KnownProtocolKind::ExpressibleByArrayLiteral:
164
+ case KnownProtocolKind::ExpressibleByBooleanLiteral:
165
+ case KnownProtocolKind::ExpressibleByDictionaryLiteral:
166
+ case KnownProtocolKind::ExpressibleByExtendedGraphemeClusterLiteral:
167
+ case KnownProtocolKind::ExpressibleByFloatLiteral:
168
+ case KnownProtocolKind::ExpressibleByIntegerLiteral:
169
+ case KnownProtocolKind::ExpressibleByStringInterpolation:
170
+ case KnownProtocolKind::ExpressibleByStringLiteral:
171
+ case KnownProtocolKind::ExpressibleByNilLiteral:
172
+ case KnownProtocolKind::ExpressibleByUnicodeScalarLiteral:
173
+ case KnownProtocolKind::ExpressibleByColorLiteral:
174
+ case KnownProtocolKind::ExpressibleByImageLiteral:
175
+ case KnownProtocolKind::ExpressibleByFileReferenceLiteral:
176
+ case KnownProtocolKind::ExpressibleByBuiltinBooleanLiteral:
177
+ case KnownProtocolKind::ExpressibleByBuiltinExtendedGraphemeClusterLiteral:
178
+ case KnownProtocolKind::ExpressibleByBuiltinFloatLiteral:
179
+ case KnownProtocolKind::ExpressibleByBuiltinIntegerLiteral:
180
+ case KnownProtocolKind::ExpressibleByBuiltinStringLiteral:
181
+ case KnownProtocolKind::ExpressibleByBuiltinUnicodeScalarLiteral:
182
+ return false ;
183
+ }
184
+ }
185
+
106
186
namespace {
107
187
enum class SearchPathKind : uint8_t {
108
188
Import = 1 << 0 ,
0 commit comments