This bug was causing Equatable(Any'non) to be considered reachable
when Array(Any'non).includes was called, causing a crash due to
non not being a valid partial reification of the type param of
Equatable.
It was being considered reachable because of the A <: Equatable(A)'read
check that happens inside the includes method, which was treating
the hypothetical type Equatable(Any'non)'read as being reachable
despite not being valid.
The issue was fixed by not treating any pure type expressions as
reachable. Only the types of values are reachable, but not type
expressions.
This bug was causing
Equatable(Any'non)
to be considered reachable whenArray(Any'non).includes
was called, causing a crash due tonon
not being a valid partial reification of the type param ofEquatable
.It was being considered reachable because of the
A <: Equatable(A)'read
check that happens inside theincludes
method, which was treating the hypothetical typeEquatable(Any'non)'read
as being reachable despite not being valid.The issue was fixed by not treating any pure type expressions as reachable. Only the types of values are reachable, but not type expressions.