mirror of
https://github.com/edwinb/Idris2-boot.git
synced 2024-09-11 16:05:51 +03:00
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. |
||
---|---|---|
.. | ||
expected | ||
run | ||
UnboundImplicits.idr |