@@ -788,20 +788,20 @@ class LetValueInitialization : public Initialization {
788
788
ConsumableAndAssignable);
789
789
}
790
790
791
- // Otherwise, if we don't have a no implicit copy trivial type, just
792
- // return value.
793
- if (!vd->isNoImplicitCopy () || !value->getType ().isTrivial (SGF.F ))
794
- return value;
791
+ // If we have a no implicit copy trivial type, wrap it in the move only
792
+ // wrapper and mark it as needing checking by the move checker.
793
+ if (vd->isNoImplicitCopy () && value->getType ().isTrivial (SGF.F )) {
794
+ value =
795
+ SGF.B .createOwnedCopyableToMoveOnlyWrapperValue (PrologueLoc, value);
796
+ value = SGF.B .createMoveValue (PrologueLoc, value, IsLexical);
797
+ return SGF.B .createMarkUnresolvedNonCopyableValueInst (
798
+ PrologueLoc, value,
799
+ MarkUnresolvedNonCopyableValueInst::CheckKind::
800
+ ConsumableAndAssignable);
801
+ }
795
802
796
- // Otherwise, we have a no implicit copy trivial type, so wrap it in the
797
- // move only wrapper and mark it as needing checking by the move cherk.
798
- value =
799
- SGF.B .createOwnedCopyableToMoveOnlyWrapperValue (PrologueLoc, value);
800
- value = SGF.B .createMoveValue (PrologueLoc, value, IsLexical);
801
- return SGF.B .createMarkUnresolvedNonCopyableValueInst (
802
- PrologueLoc, value,
803
- MarkUnresolvedNonCopyableValueInst::CheckKind::
804
- ConsumableAndAssignable);
803
+
804
+ return value;
805
805
}
806
806
807
807
// Otherwise, we need to perform some additional processing. First, if we
0 commit comments