@@ -649,6 +649,7 @@ class InteriorPointerOperandKind {
649649 RefElementAddr,
650650 RefTailAddr,
651651 OpenExistentialBox,
652+ ProjectBox,
652653 StoreBorrow,
653654 };
654655
@@ -676,6 +677,8 @@ class InteriorPointerOperandKind {
676677 return Kind::RefTailAddr;
677678 case SILInstructionKind::OpenExistentialBoxInst:
678679 return Kind::OpenExistentialBox;
680+ case SILInstructionKind::ProjectBoxInst:
681+ return Kind::ProjectBox;
679682 case SILInstructionKind::StoreBorrowInst:
680683 return Kind::StoreBorrow;
681684 }
@@ -694,6 +697,8 @@ class InteriorPointerOperandKind {
694697 return Kind::RefTailAddr;
695698 case ValueKind::OpenExistentialBoxInst:
696699 return Kind::OpenExistentialBox;
700+ case ValueKind::ProjectBoxInst:
701+ return Kind::ProjectBox;
697702 case ValueKind::StoreBorrowInst:
698703 return Kind::StoreBorrow;
699704 }
@@ -747,6 +752,7 @@ struct InteriorPointerOperand {
747752 case InteriorPointerOperandKind::RefElementAddr:
748753 case InteriorPointerOperandKind::RefTailAddr:
749754 case InteriorPointerOperandKind::OpenExistentialBox:
755+ case InteriorPointerOperandKind::ProjectBox:
750756 case InteriorPointerOperandKind::StoreBorrow: {
751757 // Ok, we have a valid instruction. Return the relevant operand.
752758 auto *op =
@@ -788,6 +794,8 @@ struct InteriorPointerOperand {
788794 return cast<RefTailAddrInst>(operand->getUser ());
789795 case InteriorPointerOperandKind::OpenExistentialBox:
790796 return cast<OpenExistentialBoxInst>(operand->getUser ());
797+ case InteriorPointerOperandKind::ProjectBox:
798+ return cast<ProjectBoxInst>(operand->getUser ());
791799 case InteriorPointerOperandKind::StoreBorrow:
792800 return cast<StoreBorrowInst>(operand->getUser ());
793801 }
0 commit comments