In the example below, why can the type of `x`

be inferred for `S1`

but not for `S2`

? Is this behavior documented anywhere or is it a bug?

```
julia> struct S1
x::Vector{Int}
end
julia> struct S2{N}
x::Vector{Int}
y::Vector{SVector{N,Int}}
end
julia> S1([])
S1(Int64[])
julia> S2([], SVector{3,Int}[])
ERROR: MethodError: no method matching S2(::Array{Any,1}, ::Array{SArray{Tuple{3},Int64,1,3},1})
Closest candidates are:
S2(::Array{Int64,1}, ::Array{SArray{Tuple{N},Int64,1,N},1}) where N at REPL[3]:2
Stacktrace:
[1] top-level scope at REPL[5]:1
julia> S2(Int[], SVector{3,Int}[])
S2{3}(Int64[], SArray{Tuple{3},Int64,1,3}[])
```