@NotNull
  protected static ArrayList<PsiType[]> produceResult(@Nullable PsiType type) {
    PsiType notNull = type != null ? type : (PsiPrimitiveType)PsiTypes.nullType();
    PsiType[] signature = {notNull};
    ArrayList<PsiType[]> result = new ArrayList<>();
    result.add(signature);
    return result;
  }
@NotNull
  protected static ArrayList<PsiType[]> produceResult(@Nullable PsiType type)