@Nullable
  private static String descriptor(@NotNull PsiType psiType) {
    int dimensions = 0;
    psiType = TypeConversionUtil.erasure(psiType);
    if (psiType instanceof PsiArrayType arrayType) {
      psiType = arrayType.getDeepComponentType();
      dimensions = arrayType.getArrayDimensions();
    }

    if (psiType instanceof PsiClassType) {
      PsiClass psiClass = ((PsiClassType)psiType).resolve();
      if (psiClass != null) {
        return descriptor(psiClass, dimensions);
      }
      else {
        LOG.debug("resolve was null for " + psiType.getCanonicalText());
        return null;
      }
    }
    else if (TypeConversionUtil.isPrimitiveAndNotNull(psiType)) {
      return "[".repeat(dimensions) + ((PsiPrimitiveType)psiType).getKind().getBinaryName();
    }
    return null;
  }
@Nullable
  private static String descriptor(@NotNull PsiType psiType)