@@ -345,9 +345,9 @@ function from_interconditional(@nospecialize(typ), (; fargs, argtypes)::ArgInfo,
345345 else
346346 elsetype = tmeet (elsetype, widenconst (new_elsetype))
347347 end
348- if (slot > 0 || condval != = false ) && ! (old ⊑ vtype) # essentially vtype ⋤ old
348+ if (slot > 0 || condval != = false ) && vtype ⋤ old
349349 slot = id
350- elseif (slot > 0 || condval != = true ) && ! (old ⊑ elsetype) # essentially elsetype ⋤ old
350+ elseif (slot > 0 || condval != = true ) && elsetype ⋤ old
351351 slot = id
352352 else # reset: no new useful information for this slot
353353 vtype = elsetype = Any
@@ -1605,7 +1605,7 @@ function abstract_eval_statement(interp::AbstractInterpreter, @nospecialize(e),
16051605 at = widenconditional (abstract_eval_value (interp, e. args[i], vtypes, sv))
16061606 if ! anyrefine
16071607 anyrefine = has_nontrivial_const_info (at) || # constant information
1608- at ⋤ fieldtype (t, i - 1 ) # just a type-level information, but more precise than the declared type
1608+ at ⊏ fieldtype (t, i - 1 ) # just a type-level information, but more precise than the declared type
16091609 end
16101610 ats[i- 1 ] = at
16111611 if at === Bottom
@@ -1808,7 +1808,7 @@ function widenreturn(@nospecialize(rt), @nospecialize(bestguess), nslots::Int, s
18081808 if ! anyrefine
18091809 # TODO : consider adding && const_prop_profitable(a) here?
18101810 anyrefine = has_const_info (a) ||
1811- a ⋤ fieldtype (rt. typ, i)
1811+ a ⊏ fieldtype (rt. typ, i)
18121812 end
18131813 fields[i] = a
18141814 end
0 commit comments