mirror of
https://github.com/edwinb/Idris2-boot.git
synced 2024-12-19 10:51:35 +03:00
fbf82eaf0b
Make desugaring/elaboration of interfaces, interface implementations, records, and parameter blocks take into account the pragma `%unbound_implicits off`. Main changes: (a) Execute the pragma also during desugaring (b) Check whether `isUnboundImplicits` is on at each desugaring step Alternatives I didn't take: (1) Changing `findBindableNames` to effectfully check the flag. Rationale: Apart from turning a pure function into an effectful one, this would mean repeatedly calling `findBindableNames`, only to do nothing once the flag is read. (2) Adding another function that takes multiple places (list of terms) that might contain bindable names, and before dispatching `findBindableNames` on each term, checking the flag. Rationale: I didn't want to add another abstraction. (weak rationale) @edwinb @gallais : if you prefer (2), I can do that.
9 lines
509 B
Plaintext
9 lines
509 B
Plaintext
1/1: Building UnboundImplicits (UnboundImplicits.idr)
|
|
UnboundImplicits.idr:6:22--6:24:While processing constructor Foo at UnboundImplicits.idr:6:1--9:1:
|
|
Undefined name n
|
|
UnboundImplicits.idr:9:24--9:26:Undefined name n
|
|
UnboundImplicits.idr:14:25--14:27:While processing constructor Foo at UnboundImplicits.idr:14:1--17:1:
|
|
Undefined name n
|
|
UnboundImplicits.idr:17:30--17:31:While processing type of Functor implementation at UnboundImplicits.idr:17:1--18:1 at UnboundImplicits.idr:17:1--18:1:
|
|
Undefined name n
|