# Stack Overflow confusion

**URL:** <https://discourse.julialang.org/t/stack-overflow-confusion/89054>\
**Category:** General Usage\
**Created:** [October 21, 2022, 11:04am UTC](https://discourse.julialang.org/t/stack-overflow-confusion/89054 "2022-10-21T11:04:29Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![prittjam](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/prittjam/32/21267_2.png) [@prittjam](https://discourse.julialang.org/u/prittjam)\
**Post date:** [October 21, 2022, 11:04am UTC](https://discourse.julialang.org/t/stack-overflow-confusion/89054/1 "2022-10-21T11:04:29Z")

</div>

```julia
const Tmp{T <: AbstractFloat} = SMatrix{3,4,T,12}

```

Why does this overflow?

```julia
Tmp(rand(Float32,3,4))

```

of course, this works,

```julia
Tmp{Float32}(rand(Float32,3,4))

```

but I don’t understand why the first case overflows.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [October 21, 2022, 11:23am UTC](https://discourse.julialang.org/t/stack-overflow-confusion/89054/2 "2022-10-21T11:23:28Z")

</div>

> [@prittjam](#):
>
> why the first case overflows.

It doesn’t, for me:

```julia
julia> versioninfo()
Julia Version 1.8.2
Commit 36034abf26 (2022-09-29 15:21 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 8 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, haswell)
  Threads: 4 on 8 virtual cores

(@v1.8) pkg> st StaticArrays
Status `C:\Users\oheil\.julia\environments\v1.8\Project.toml`
  [90137ffa] StaticArrays v1.5.9

julia> using StaticArrays

julia> const Tmp{T <: AbstractFloat} = SMatrix{3,4,T,12}
SMatrix{3, 4, T, 12} where T<:AbstractFloat (alias for SArray{Tuple{3, 4}, T, 2, 12} where T<:AbstractFloat)

julia> Tmp(rand(Float32,3,4))
3×4 SMatrix{3, 4, Float32, 12} with indices SOneTo(3)×SOneTo(4):
 0.824309 0.662805 0.774721 0.721328
 0.870767 0.584382 0.798654 0.76885
 0.24125 0.181562 0.136964 0.974316

```

---

<div class="post-metadata">

**Author:** ![prittjam](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/prittjam/32/21267_2.png) [@prittjam](https://discourse.julialang.org/u/prittjam)\
**Post date:** [October 21, 2022, 11:42am UTC](https://discourse.julialang.org/t/stack-overflow-confusion/89054/3 "2022-10-21T11:42:11Z")

</div>

I’m not sure what’s going on. It only happens when I load a module that I am developing. So this is not a bug with StaticArrays.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [October 21, 2022, 12:01pm UTC](https://discourse.julialang.org/t/stack-overflow-confusion/89054/4 "2022-10-21T12:01:28Z")

</div>

I can just try what you provide.

In general, the line

```julia
Tmp(rand(Float32,3,4))

```

is equivalent to

```julia
julia> a=rand(Float32,3,4)
julia> Tmp(a)
julia> @which Tmp(a)
(::Type{SA})(a::AbstractArray) where SA<:StaticArray in StaticArrays at C:\Users\oheil\.julia\packages\StaticArrays\PUoe1\src\convert.jl:169

```

Perhaps you have defined some `convert` method for your `Type`-alias which has a bug?

Without your complete code it’s difficult to say. Perhaps you can find some MWE (minimal working example) which let us reproduce the stack overflow.
