Skip to content

Weird stackoverflow in inner constructor w/ use of const variable #22787

Closed
@quinnj

Description

@quinnj

Latest master, OSX

julia> sz = 3576
3576

julia> struct works
           data::NTuple{sz, UInt8}
           works() = new(ntuple(x->0x00, sz))
       end

julia> @time works()
  0.034114 seconds (27.93 k allocations: 1.803 MiB)

and

julia> const sz2 = 3576
3576

julia> struct doesntwork
           data::NTuple{sz2, UInt8}
           doesntwork() = new(ntuple(x->0x00, sz2))
       end

julia> @time doesntwork()
Internal error: encountered unexpected error in runtime:
StackOverflowError()
intersect at /Users/jacobquinn/julia/src/subtype.c:1897
intersect_unionall_ at /Users/jacobquinn/julia/src/subtype.c:1510
intersect_unionall at /Users/jacobquinn/julia/src/subtype.c:1555
intersect at /Users/jacobquinn/julia/src/subtype.c:1914
intersect_ufirst at /Users/jacobquinn/julia/src/subtype.c:1189 [inlined]
intersect_var at /Users/jacobquinn/julia/src/subtype.c:1244
intersect_invariant at /Users/jacobquinn/julia/src/subtype.c:1759
intersect at /Users/jacobquinn/julia/src/subtype.c:1999
intersect_tuple at /Users/jacobquinn/julia/src/subtype.c:1657 [inlined]
intersect at /Users/jacobquinn/julia/src/subtype.c:1965
intersect_unionall_ at /Users/jacobquinn/julia/src/subtype.c:1510
intersect_unionall at /Users/jacobquinn/julia/src/subtype.c:1555
intersect at /Users/jacobquinn/julia/src/subtype.c:1914
intersect_all at /Users/jacobquinn/julia/src/subtype.c:2035
jl_type_intersection_env_s at /Users/jacobquinn/julia/src/subtype.c:2139
jl_typemap_intersection_node_visitor at /Users/jacobquinn/julia/src/typemap.c:481
jl_typemap_intersection_visitor at /Users/jacobquinn/julia/src/typemap.c:545
jl_typemap_intersection_visitor at /Users/jacobquinn/julia/src/typemap.c:536
ml_matches at /Users/jacobquinn/julia/src/gf.c:2381
jl_matching_methods at /Users/jacobquinn/julia/src/gf.c:1615
abstract_call_gf_by_type at ./inference.jl:1650
...
...
...

Metadata

Metadata

Assignees

Labels

compiler:inferenceType inferenceregressionRegression in behavior compared to a previous versiontypes and dispatchTypes, subtyping and method dispatch

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions