eval(existentialBound:)

private mutating func eval(
  existentialBound e: NameExpr.ID
) -> (AnyType, Set<GenericConstraint>)

Evaluates and returns e, which is a type annotation describing the subject of an extension or a bound in an existential type, along with its associated constraints.

When a name expression describes the subject of an extension or a bound an existential bound, generic parameters are interpreted as sugared constraints that would otherwise be defined in a where clause. For example, in conformance Array<Int>: P {}, the extended type is Array and Int is interpreted as a constraint on Array‘s generic parameter.