Thanks a lot! That begins to make sense. I assume it only applies to hard coded constants, not to user inputs?
So if someone does
function foo(a::AbstractArray{Bool})
a[1] ? 1 : 2
end
and then calls foo([true, false])
, will constant propagation allow to elide the ?
check altogether?