Closed
Description
Pushing and popping names during elaboration/unification/semantics is an annoyance (#488). It would be nice if we can separate name resolution to a separate pass performed before elaboration.
A potential hurdle is that some aspects of name resolution are type-sensitive, and so AFAIK cannot be purely syntax-directed. Namely, elaboration of surface::Term::Tuple
depends on the type being checked against: if it elaborated to a RecordLiteral
, no new bindings are inserted. But if it is elaborated to a RecordType
or RecordFormat
, a new binding is inserted for each element of the tuple. We may be able to find a workaround for this.
Metadata
Metadata
Assignees
Labels
No labels