@Override
    public Type visitArrayType(@NotNull PsiArrayType type) {
      return new Array(type, substituteComponents(type));
    }
@Override
    public Type visitArrayType(@NotNull PsiArrayType type)