String (CommentTracker ct) { StringBuilder sb = new StringBuilder(); PsiElement label = ContainerUtil.find(myUsedElements, e -> e instanceof PsiSwitchLabelStatement); if (label != null) { sb.append(ct.commentsBefore(label.getFirstChild())); } if (!myCaseExpressions.isEmpty()) { String labels = StreamEx.of(myCaseExpressions).map(ct::textWithComments).joining(","); sb.append("case"); if (!labels.startsWith(" ")) { sb.append(" "); } sb.append(labels); } else if (!myIsDefault) { sb.append("case "); } if (myIsDefault) { if (!myCaseExpressions.isEmpty()) { sb.append(","); } sb.append("default"); } if (myGuard != null) { sb.append(" when ").append(ct.text(myGuard)); } grabCommentsBeforeColon(label, ct, sb); sb.append("->"); sb.append(myRuleResult.generate(ct, this)); return sb.toString(); }