Skip to content

Commit 6e1410d

Browse files
committed
[NFC] MoveChecker: Produce value from switch.
Rather than using a different value and doing the same thing on each branch.
1 parent 3decd81 commit 6e1410d

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

lib/SILOptimizer/Mandatory/MoveOnlyDiagnostics.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -824,17 +824,15 @@ void DiagnosticEmitter::emitCannotPartiallyMutateError(
824824
astContext.LangOpts.hasFeature(Feature::MoveOnlyPartialConsumption) ||
825825
astContext.LangOpts.hasFeature(
826826
Feature::MoveOnlyPartialReinitialization));
827-
switch (kind) {
828-
case PartialMutation::Kind::Consume:
829-
diagnose(astContext, user,
830-
diag::sil_movechecking_cannot_destructure_has_deinit, varName);
831-
break;
832-
case PartialMutation::Kind::Reinit:
833-
diagnose(astContext, user,
834-
diag::sil_movechecking_cannot_partially_reinit_has_deinit,
835-
varName);
836-
break;
837-
}
827+
auto diagnostic = [&]() {
828+
switch (kind) {
829+
case PartialMutation::Kind::Consume:
830+
return diag::sil_movechecking_cannot_destructure_has_deinit;
831+
case PartialMutation::Kind::Reinit:
832+
return diag::sil_movechecking_cannot_partially_reinit_has_deinit;
833+
}
834+
}();
835+
diagnose(astContext, user, diagnostic, varName);
838836
registerDiagnosticEmitted(address);
839837
auto deinitLoc = error.getNominal().getValueTypeDestructor()->getLoc(
840838
/*SerializedOK=*/false);

0 commit comments

Comments
 (0)