@@ -2490,7 +2490,7 @@ function inlineable(f::ANY, ft::ANY, e::Expr, atypes::Vector{Any}, sv::Inference
24902490 end
24912491 local ret_var, merge
24922492 if spec_miss != = nothing
2493- ret_var = add_slot! (sv. src, ex. typ, false )
2493+ ret_var = add_slot! (sv. src, widenconst ( ex. typ) , false )
24942494 merge = genlabel (sv)
24952495 push! (stmts, spec_miss)
24962496 push! (stmts, Expr (:(= ), ret_var, ex))
@@ -3140,7 +3140,7 @@ const compiler_temp_sym = Symbol("#temp#")
31403140function add_slot! (src:: CodeInfo , typ:: ANY , is_sa:: Bool , name:: Symbol = compiler_temp_sym)
31413141 id = length (src. slotnames) + 1
31423142 push! (src. slotnames, name)
3143- push! (src. slottypes, typ)
3143+ push! (src. slottypes, typ); @assert ! isa (typ, Const)
31443144 push! (src. slotflags, Slot_Assigned + is_sa * Slot_AssignedOnce)
31453145 return SlotNumber (id)
31463146end
@@ -3753,7 +3753,7 @@ function alloc_elim_pass!(sv::InferenceState)
37533753 tmpv = newvar! (sv, elty)
37543754 else
37553755 var = var:: Slot
3756- tmpv = add_slot! (sv. src, elty, false ,
3756+ tmpv = add_slot! (sv. src, widenconst ( elty) , false ,
37573757 sv. src. slotnames[var. id])
37583758 slot_id = tmpv. id
37593759 new_slots[j] = slot_id
0 commit comments