Skip to content

Commit 287215f

Browse files
Mark Tuples with Bottom among their parameters as cacheable (#36152)
Fixes #36100.
1 parent b5868b9 commit 287215f

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/jltypes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1492,7 +1492,7 @@ static jl_tupletype_t *jl_apply_tuple_type_v_(jl_value_t **p, size_t np, jl_svec
14921492
int cacheable = 1;
14931493
for (size_t i = 0; i < np; i++) {
14941494
assert(p[i]);
1495-
if (!jl_is_concrete_type(p[i]))
1495+
if (!jl_is_concrete_type(p[i]) && p[i] != jl_bottom_type)
14961496
cacheable = 0;
14971497
}
14981498
return (jl_datatype_t*)inst_datatype_inner(jl_anytuple_type, params, p, np, cacheable, NULL, NULL);

test/subtype.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1753,3 +1753,7 @@ s26065 = Ref{Tuple{T,Ref{Union{Ref{Tuple{Ref{Union{Ref{Ref{Tuple{Ref{Tuple{Union
17531753

17541754
@test !issub(Tuple{Type{T}, T} where T<:Tuple{String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}, String, Union{Base.Regex, AbstractChar, AbstractString}},
17551755
Tuple{Type{Tuple{Vararg{V, N} where N}}, Tuple{Vararg{V, N} where N}} where V)
1756+
1757+
# issue 36100
1758+
@test NamedTuple{(:a, :b), Tuple{Missing, Union{}}} == NamedTuple{(:a, :b), Tuple{Missing, Union{}}}
1759+
@test Val{Tuple{Missing, Union{}}} === Val{Tuple{Missing, Union{}}}

0 commit comments

Comments
 (0)