@@ -586,15 +586,19 @@ add_tfunc(nfields, 1, 1, nfields_tfunc, 1)
586586add_tfunc (Core. _expr, 1 , INT_INF, @nospecs ((π:: AbstractLattice , args... )-> Expr), 100 )
587587add_tfunc (svec, 0 , INT_INF, @nospecs ((π:: AbstractLattice , args... )-> SimpleVector), 20 )
588588
589- @nospecs function _svec_len_tfunc (π :: AbstractLattice , s)
589+ @nospecs function _svec_len_tfunc (:: AbstractLattice , s)
590590 if isa (s, Const) && isa (s. val, SimpleVector)
591591 return Const (length (s. val))
592592 end
593593 return Int
594594end
595595add_tfunc (Core. _svec_len, 1 , 1 , _svec_len_tfunc, 1 )
596+ @nospecs function _svec_len_nothrow (π:: AbstractLattice , s)
597+ β = partialorder (π)
598+ return s β SimpleVector
599+ end
596600
597- @nospecs function _svec_ref_tfunc (π :: AbstractLattice , s, i)
601+ @nospecs function _svec_ref_tfunc (:: AbstractLattice , s, i)
598602 if isa (s, Const) && isa (i, Const)
599603 s, i = s. val, i. val
600604 if isa (s, SimpleVector) && isa (i, Int)
@@ -604,7 +608,7 @@ add_tfunc(Core._svec_len, 1, 1, _svec_len_tfunc, 1)
604608 return Any
605609end
606610add_tfunc (Core. _svec_ref, 2 , 2 , _svec_ref_tfunc, 1 )
607- @nospecs function typevar_tfunc (π :: AbstractLattice , n, lb_arg, ub_arg)
611+ @nospecs function typevar_tfunc (:: AbstractLattice , n, lb_arg, ub_arg)
608612 lb = Union{}
609613 ub = Any
610614 ub_certain = lb_certain = true
@@ -2363,7 +2367,7 @@ function _builtin_nothrow(π::AbstractLattice, @nospecialize(f::Builtin), argt
23632367 return compilerbarrier_nothrow (argtypes[1 ], nothing )
23642368 elseif f === Core. _svec_len
23652369 na == 1 || return false
2366- return _svec_len_tfunc (π, argtypes[1 ]) isa Const
2370+ return _svec_len_nothrow (π, argtypes[1 ])
23672371 elseif f === Core. _svec_ref
23682372 na == 2 || return false
23692373 return _svec_ref_tfunc (π, argtypes[1 ], argtypes[2 ]) isa Const
0 commit comments