You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's a window of vulnerability between ElimByName and Erasure where some
ExprTypes `=> T` that appear as parameters of function types are not yet converted
to by-name functions `() ?=> T`. These would cause an assertion violation when
used as operands of & or |. We fix this on the fly when forming these types in TypeComparer.
As explained in ElimByName, we can't fix it beforehand by mapping all occurrences of `=> T` to
`() ?=> T` since that could lead to cycles.
Fixesscala#19548
There's a window of vulnerability between ElimByName and Erasure where
some ExprTypes `=> T` that appear as parameters of function types are
not yet converted to by-name functions `() ?=> T`. These would cause an
assertion violation when used as operands of & or |. We fix this on the
fly when forming these types in TypeComparer. As explained in
ElimByName, we can't fix it beforehand by mapping all occurrences of `=>
T` to `() ?=> T` since that could lead to cycles.
Fixes#19548
There's a window of vulnerability between ElimByName and Erasure where some
ExprTypes `=> T` that appear as parameters of function types are not yet converted
to by-name functions `() ?=> T`. These would cause an assertion violation when
used as operands of & or |. We fix this on the fly when forming these types in TypeComparer.
As explained in ElimByName, we can't fix it beforehand by mapping all occurrences of `=> T` to
`() ?=> T` since that could lead to cycles.
Fixes#19548
[Cherry-picked 1ea4c86]
Compiler version
3.4.0-RC3
Minimized code
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: