@@ -502,6 +502,10 @@ struct OwnedValueIntroducerKind {
502502 // / owned.
503503 Struct,
504504
505+ // / An owned value that is from a tuple that has multiple operands that are
506+ // / owned.
507+ Tuple,
508+
505509 // / An owned value that is a function argument.
506510 FunctionArgument,
507511
@@ -528,6 +532,8 @@ struct OwnedValueIntroducerKind {
528532 return OwnedValueIntroducerKind (BeginApply);
529533 case ValueKind::StructInst:
530534 return OwnedValueIntroducerKind (Struct);
535+ case ValueKind::TupleInst:
536+ return OwnedValueIntroducerKind (Tuple);
531537 case ValueKind::SILPhiArgument: {
532538 auto *phiArg = cast<SILPhiArgument>(value);
533539 if (dyn_cast_or_null<TryApplyInst>(phiArg->getSingleTerminator ())) {
@@ -621,6 +627,7 @@ struct OwnedValueIntroducer {
621627 case OwnedValueIntroducerKind::LoadTake:
622628 case OwnedValueIntroducerKind::Phi:
623629 case OwnedValueIntroducerKind::Struct:
630+ case OwnedValueIntroducerKind::Tuple:
624631 case OwnedValueIntroducerKind::FunctionArgument:
625632 case OwnedValueIntroducerKind::PartialApplyInit:
626633 case OwnedValueIntroducerKind::AllocBoxInit:
@@ -639,6 +646,7 @@ struct OwnedValueIntroducer {
639646 case OwnedValueIntroducerKind::Phi:
640647 return true ;
641648 case OwnedValueIntroducerKind::Struct:
649+ case OwnedValueIntroducerKind::Tuple:
642650 case OwnedValueIntroducerKind::Copy:
643651 case OwnedValueIntroducerKind::LoadCopy:
644652 case OwnedValueIntroducerKind::Apply:
0 commit comments