File tree Expand file tree Collapse file tree 1 file changed +11
-4
lines changed
lib/SILOptimizer/Transforms Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -241,10 +241,17 @@ bool ProtocolDevirtualizer::canDevirtualizeProtocolInFunction(ProtocolDevirtuali
241
241
bool UnknownPattern = false ;
242
242
for (auto *Op : Args[i]->getUses ()) {
243
243
auto User = Op->getUser ();
244
- auto *Open = dyn_cast<OpenExistentialRefInst>(User);
245
- auto *Debug = dyn_cast<DebugValueInst>(User);
246
- if (!(Open || Debug)) {
247
- UnknownPattern = true ;
244
+ switch (User->getKind ()) {
245
+ case SILInstructionKind::OpenExistentialAddrInst:
246
+ case SILInstructionKind::OpenExistentialBoxValueInst:
247
+ case SILInstructionKind::OpenExistentialMetatypeInst:
248
+ case SILInstructionKind::OpenExistentialValueInst:
249
+ UnknownPattern = true ;
250
+ break ;
251
+ default : break ;
252
+ }
253
+ if (UnknownPattern) {
254
+ break ;
248
255
}
249
256
}
250
257
if (!UnknownPattern) {
You can’t perform that action at this time.
0 commit comments