private static void processPrimitiveTypeAndSubtypes(@NotNull PsiPrimitiveType type,
                                                      @NotNull PsiTypeVisitor<? extends PsiType> visitor,
                                                      @NotNull Set<? super PsiType> set) {
    if (type.equals(PsiTypes.booleanType()) || type.equals(PsiTypes.voidType()) || type.equals(PsiTypes.nullType())) return;

    for (PsiPrimitiveType primitiveType : PsiTypes.primitiveTypes()) {
      processType(primitiveType, visitor, set);
      if (primitiveType.equals(type)) return;
    }
  }
private static void processPrimitiveTypeAndSubtypes(@NotNull PsiPrimitiveType type,
                                                      @NotNull PsiTypeVisitor<? extends PsiType> visitor,
                                                      @NotNull Set<? super PsiType> set)