improve `@something` hygine (#41797)
* improve intermediate inferrability of `@something`
```julia
let x::Union{T,Nothing}
if (val = x) !== nothing
# can't narrow down to `val::T` here because the type constraint
# is imposed on `x`
return val
end
end
```
* Update base/some.jl
Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>
* improve escape and add test
* Update test/some.jl
Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>
* Update base/some.jl
Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>
Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>