@Override
    public DfType getUnboxedType() {
      String name = classDef.getQualifiedName();
      if (name == null) return DfType.BOTTOM;
      return switch (name) {
        case JAVA_LANG_BOOLEAN -> DfTypes.BOOLEAN;
        case JAVA_LANG_INTEGER -> DfTypes.INT;
        case JAVA_LANG_LONG -> DfTypes.LONG;
        case JAVA_LANG_DOUBLE -> DfTypes.DOUBLE;
        case JAVA_LANG_FLOAT -> DfTypes.FLOAT;
        case JAVA_LANG_BYTE -> DfTypes.intRange(Objects.requireNonNull(JvmPsiRangeSetUtil.typeRange(PsiTypes.byteType())));
        case JAVA_LANG_SHORT -> DfTypes.intRange(Objects.requireNonNull(JvmPsiRangeSetUtil.typeRange(PsiTypes.shortType())));
        case JAVA_LANG_CHARACTER -> DfTypes.intRange(Objects.requireNonNull(JvmPsiRangeSetUtil.typeRange(PsiTypes.charType())));
        default -> DfType.BOTTOM;
      };
    }
@Override
    public DfType getUnboxedType()