@Override
  void fillElementsToCheckDuplicates(@NotNull MultiMap<Object, PsiElement> elements, @NotNull PsiCaseLabelElement labelElement) {
    if (labelElement instanceof PsiDefaultCaseLabelElement) {
      elements.putValue(myDefaultValue, labelElement);
    }
    else if (labelElement instanceof PsiExpression) {
      if (labelElement instanceof PsiReferenceExpression ref) {
        String enumConstName = evaluateEnumConstantName(ref);
        if (enumConstName != null) {
          elements.putValue(enumConstName, labelElement);
          return;
        }
      }
      Object operand = evaluateConstant(labelElement);
      if (operand != null) {
        if (operand instanceof Boolean booleanOperand && mySelectorKind == SelectorKind.BOOLEAN) {
          elements.putValue(booleanOperand.booleanValue(), labelElement);
        }
        else {
          elements.putValue(ConstantExpressionUtil.computeCastTo(operand, mySelectorType), labelElement);
        }
      }
      if (labelElement instanceof PsiLiteralExpression literalExpression && literalExpression.getType() == PsiTypes.nullType()) {
        elements.putValue(null, labelElement);
      }
    }
    else if (JavaPsiPatternUtil.isUnconditionalForType(labelElement, mySelectorType)) {
      elements.putValue(myUnconditionalPattern, labelElement);
    }
  }
@Override
  void fillElementsToCheckDuplicates(@NotNull MultiMap<Object, PsiElement> elements, @NotNull PsiCaseLabelElement labelElement)