julia
612169fb - types/gf/typemap: ConstType in dispatch tuples

Commit
50 days ago
types/gf/typemap: ConstType in dispatch tuples Enable ConstType{T} in dispatch tuples for DataType values only: concrete DataType arguments (no free typevars) are wrapped as ConstType{T}. UnionAll and other type objects keep Type{T} wrapping. Subtype fixes: - ConstType{A} <: Type{B} with TypeVars: forall_exists_equal + invdepth - obviously_disjoint: skip concrete fast path for ConstType tuples - is_leaf_bound: true for ConstType instances - widen_Type_if_concrete: handle ConstType (widen to typeof(T)) - jl_has_intersect_type_not_kind: true for ConstType - fix_inferred_var_bound: unwrap ConstType{T} to Type{T} in sparams Typemap cache fixes: - is_type_or_consttype helper for extracting inner type - jl_typemap_assoc_by_type: check targ and arg1 caches for ConstType - jl_typemap_intersection_visitor: check arg1 for typeof(T) - tname_intersection, jl_type_extract_name, jl_type_extract_name_precise: handle ConstType - type_hash, typekeyvalue_hash/eq: handle ConstType - jl_precompute_memoized_dt: ConstType = concrete + dispatch - has_concrete_supertype: true for ConstType Other fixes: - jl_gc_wb null check in jl_compile_method_internal - jl_wrap_ConstType: use jl_gc_alloc + jl_set_typetagof Bootstrap succeeds, 108 packages precompile, all tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Committer
Parents
Loading