@@ -788,20 +788,20 @@ end
788
788
789
789
function compileable_specialization (et:: Union{EdgeTracker, Nothing} , match:: MethodMatch , effects:: Effects )
790
790
mi = specialize_method (match; compilesig= true )
791
- mi != = nothing && et != = nothing && push! (et, mi:: MethodInstance )
792
791
mi === nothing && return nothing
792
+ et != = nothing && push! (et, mi)
793
793
return InvokeCase (mi, effects)
794
794
end
795
795
796
796
function compileable_specialization (et:: Union{EdgeTracker, Nothing} , linfo:: MethodInstance , effects:: Effects )
797
797
mi = specialize_method (linfo. def:: Method , linfo. specTypes, linfo. sparam_vals; compilesig= true )
798
- mi != = nothing && et != = nothing && push! (et, mi:: MethodInstance )
799
798
mi === nothing && return nothing
799
+ et != = nothing && push! (et, mi)
800
800
return InvokeCase (mi, effects)
801
801
end
802
802
803
- function compileable_specialization (et:: Union{EdgeTracker, Nothing} , (; linfo) :: InferenceResult , effects:: Effects )
804
- return compileable_specialization (et, linfo, effects)
803
+ function compileable_specialization (et:: Union{EdgeTracker, Nothing} , result :: InferenceResult , effects:: Effects )
804
+ return compileable_specialization (et, result . linfo, effects)
805
805
end
806
806
807
807
function resolve_todo (todo:: InliningTodo , state:: InliningState , flag:: UInt8 )
@@ -1283,7 +1283,11 @@ function handle_const_call!(
1283
1283
any_fully_covered |= match. fully_covers
1284
1284
if isa (result, ConcreteResult)
1285
1285
case = concrete_result_item (result, state)
1286
- push! (cases, InliningCase (result. mi. specTypes, case))
1286
+ if case === nothing
1287
+ handled_all_cases = false
1288
+ else
1289
+ push! (cases, InliningCase (result. mi. specTypes, case))
1290
+ end
1287
1291
elseif isa (result, ConstPropResult)
1288
1292
handled_all_cases &= handle_const_prop_result! (result, argtypes, flag, state, cases, true )
1289
1293
else
0 commit comments