# Weird docstrings error

**URL:** <https://discourse.julialang.org/t/weird-docstrings-error/14000>\
**Category:** General Usage\
**Created:** [August 24, 2018, 3:01pm UTC](https://discourse.julialang.org/t/weird-docstrings-error/14000 "2018-08-24T15:01:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![louisponet](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/louisponet/32/2070_2.png) [@louisponet](https://discourse.julialang.org/u/louisponet)\
**Post date:** [August 24, 2018, 3:01pm UTC](https://discourse.julialang.org/t/weird-docstrings-error/14000/1 "2018-08-24T15:01:11Z")

</div>

MWE:

```julia
abstract type SpinCategory end

struct SpinAware <: SpinCategory end

""" Looks at axes to figure out the spin category

- no spin-axis -> SpinDegenerate
- fastest changing dimension -> ColinearSpinFirst
- `n`th dim -> ColinearSpin{n}

"""
(::Type{SpinCategory})(array::Array) = SpinCategory(axes(array))

```

I have no clue what our why this is happening. Any ideas?

---

<div class="post-metadata">

**Author:** ![yurivish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yurivish/32/307_2.png) [@yurivish](https://discourse.julialang.org/u/yurivish)\
**Post date:** [August 24, 2018, 3:05pm UTC](https://discourse.julialang.org/t/weird-docstrings-error/14000/2 "2018-08-24T15:05:26Z")

</div>

The error is

```julia
ERROR: LoadError: BoundsError: attempt to access 1-element Array{Any,1} at index [2]

```

This reduced test case also exhibits the error:

```julia
"Looks at axes to figure out the spin category."
(::Type{Int})() = 1

```

The error appears to be coming from from the `.args[2]` indexing on the `return astname` line in this function in Docs.jl:

```julia
function astname(x::Expr, ismacro::Bool)
    if isexpr(x, :.)
        ismacro ? macroname(x) : x
    # Call overloading, e.g. `(a::A)(b) = b` or `function (a::A)(b) b end` should document `A(b)`
    elseif (isexpr(x, :function) || isexpr(x, :(=))) && isexpr(x.args[1], :call) && isexpr(x.args[1].args[1], :(::))
        return astname(x.args[1].args[1].args[2], ismacro)
    else
        n = isexpr(x, (:module, :struct)) ? 2 : 1
        astname(x.args[n], ismacro)
    end
end

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [August 24, 2018, 3:07pm UTC](https://discourse.julialang.org/t/weird-docstrings-error/14000/3 "2018-08-24T15:07:55Z")

</div>

I thought I recognized that code… [https://github.com/JuliaLang/julia/pull/25626](https://github.com/JuliaLang/julia/pull/25626). Looks like it wasnt 100% correct, heh.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [August 24, 2018, 3:31pm UTC](https://discourse.julialang.org/t/weird-docstrings-error/14000/4 "2018-08-24T15:31:13Z")

</div>

[https://github.com/JuliaLang/julia/pull/28875](https://github.com/JuliaLang/julia/pull/28875)
