void (@NotNull ActionContext context, @NotNull PsiSwitchBlock block, @NotNull ModPsiUpdater updater) { if (block instanceof PsiSwitchExpression && !HighlightingFeature.SWITCH_EXPRESSION.isAvailable(block)) { // Do not suggest if switch expression is not supported as we may generate unparseable code with 'yield' statement return; } List<Value> allValues = myAllValues; List<Value> missingValues = getMissingValues(block, allValues); if (missingValues.isEmpty()) return; List<String> allValueNames = ContainerUtil.map(allValues, v -> v.myName); List<String> missingValueNames = ContainerUtil.map(missingValues, v -> v.myName); List<PsiSwitchLabelStatementBase> addedLabels = CreateSwitchBranchesUtil.createMissingBranches(block, allValueNames, missingValueNames, label -> extractConstantNames(allValues, label)); CreateSwitchBranchesUtil.createTemplate(block, addedLabels, updater); }