# This code kills Julia 1.9 RC1

**URL:** https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885
**Category:** General Usage
**Tags:** bug
**Created:** [March 31, 2023, 8:37am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885 "2023-03-31T08:37:29Z")
**Posts on this page:** 7
**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: [March 31, 2023, 8:37am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/1 "2023-03-31T08:37:29Z")

</div>

```julia
abstract type VgtkNum end

struct VgtkInt{T <: Integer} <: VgtkNum
    int::T
end

VgtkInt(::Val{N}) where N <: Integer = VgtkInt(N)
VgtkInt(x::AbstractFloat) = VgtkInt(trunc(Int, x))

struct VgtkFloat{T <: AbstractFloat} <: VgtkNum
   float::T
end

VgtkFloat(x::Integer) = VgtkFloat(float(x))

value(x::VgtkInt) = x.int
value(x::VgtkFloat) = x.float 

Base.:(+)(a::VgtkInt, b::VgtkInt) = VgtkInt(a.int + b.int)
Base.:(+)(a::VgtkFloat, b::VgtkFloat) = VgtkFloat(a.float + b.float)
Base.:(+)(a::VgtkNum, b::VgtkNum) = VgtkFloat(value(a) + value(b))

neltype(x) = neltype(typeof(x))
neltype(::Type{T}) where T <: AbstractArray = neltype(eltype(T))
neltype(::Type{T}) where T = T

const PointRpN{N, T <: AbstractFloat} = SVector{value(VgtkInt(Val(N))+VgtkInt(1)), T} 
const PointRp2{T <: AbstractFloat} = PointRpN{2, T}
const LineRp2{T <: AbstractFloat} = SVector{3, T}

```

---

<div class="post-metadata">

### Author: ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)
#### Post date: [March 31, 2023, 8:42am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/2 "2023-03-31T08:42:33Z")

</div>

I can confirm

```julia
using StaticArrays
...
julia> const PointRpN{N, T <: AbstractFloat} = SVector{value(VgtkInt(Val(N))+VgtkInt(1)), T}

[25959] signal (11.1): Segmentation fault
in expression starting at REPL[16]:1
jl_f_tuple at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/builtins.c:835 [inlined]
jl_f_tuple at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/builtins.c:825
jl_method_error at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2065
jl_lookup_generic_ at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2909
jl_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1878 [inlined]
do_call at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:126
eval_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:226
eval_stmt_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:177 [inlined]
eval_body at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:624
jl_interpret_toplevel_thunk at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:762
jl_toplevel_eval_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:912
jl_toplevel_eval_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
ijl_toplevel_eval_in at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:971
eval at ./boot.jl:370 [inlined]
eval_user_input at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:153
repl_backend_loop at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:249
#start_repl_backend#46 at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:234
start_repl_backend at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:231
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2731 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2913
#run_repl#59 at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:377
run_repl at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:363
jfptr_run_repl_60577.clone_1 at /home/fredrikb/.julia/juliaup/julia-1.9.0-rc1+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2731 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2913
#1017 at ./client.jl:421
jfptr_YY.1017_27809.clone_1 at /home/fredrikb/.julia/juliaup/julia-1.9.0-rc1+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2731 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2913
jl_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1878 [inlined]
jl_f__call_latest at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/builtins.c:774
#invokelatest#2 at ./essentials.jl:816 [inlined]
invokelatest at ./essentials.jl:813 [inlined]
run_main_repl at ./client.jl:405
exec_options at ./client.jl:322
_start at ./client.jl:522
jfptr__start_33350.clone_1 at /home/fredrikb/.julia/juliaup/julia-1.9.0-rc1+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2731 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2913
jl_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1878 [inlined]
true_main at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:573
jl_repl_entrypoint at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:717
main at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/cli/loader_exe.c:59
unknown function (ip: 0x7fd62e403d8f)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x401098)
Allocations: 2007736 (Pool: 2007264; Big: 472); GC: 3
Segmentation fault (core dumped)

```

---

<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: [March 31, 2023, 8:52am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/3 "2023-03-31T08:52:04Z")

</div>

Regardless, I don’t think what I’m trying to do is possible in Julia. I want to add a number to a constant type parameter of a type alias and forward it to a parameterized struct. In this case, I’m adding 1 to the dimension of an SVector.

---

<div class="post-metadata">

### Author: ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)
#### Post date: [March 31, 2023, 9:18am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/4 "2023-03-31T09:18:28Z")

</div>

Nonetheless , this shouldn’t segfault, and throw a meaningful error if this is not possible. Would you mind filing an issue with Julia?

---

<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: [March 31, 2023, 9:23am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/5 "2023-03-31T09:23:20Z")

</div>

I’ll put it on the GitHub.

Am I correct that I cannot achieve what I suggest?

---

<div class="post-metadata">

### Author: ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)
#### Post date: [March 31, 2023, 9:25am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/6 "2023-03-31T09:25:39Z")

</div>

I think this can’t be done

---

<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: [March 31, 2023, 9:26am UTC](https://discourse.julialang.org/t/this-code-kills-julia-1-9-rc1/96885/7 "2023-03-31T09:26:52Z")

</div>

thanks
