Open nalimilan opened 7 years ago
With assertions enabled, this hits this assertion after recursing quasi-infinitely. Simpler repro (with assertions on/debug build):
struct Null end
struct CategoricalArray{T, V} end
t1=Type{CategoricalArray{Union{T, Null}, T} where T}
t2=Type{CategoricalArray{Union{T, Null}, V2} where V2} where T
typeintersect(t1,t2)
Might be related to #21332, although there the recursion went through var_lt
, while here it goes through var_gt
.
Just t1 <: t2
also seems to reproduce the problem.
Is there any updates on the status of this? Is it going to be handled for 0.7/1.0? Is there something fundamental behind this that doesn't allow fixing? (Like simple stack size increase is not feasible or something anymore.) @JeffBezanson
(It is still reproducible on master
.)
One more example which seems similar and doesn't require external packages to reproduce:
julia> t1 = Ref{Ref{Ref{Union{Int64, T}}} where T}; t2 = Ref{Ref{Ref{Union{T, S}}} where T} where S
julia> t1 <: t2
ERROR: StackOverflowError:
This is on master
.
Why closing? The example above still reproduces
With the nl/crash branch of CategoricalArrays, I get a crash in
subtype_unionall
with Julia from a recent git master:(The codebase is in an inconsistent state which isn't supposed to work, but for this reason it's a good test for inference.)