Uh oh!
There was an error while loading. Please reload this page.
Recover unfinished binary expressions - #13459
Conversation
auduchinok
commented
Jul 7, 2022
The following case got broken: letf(a,[<A>]b)=()I'm (hopefully, temporarily) undoing the before- |
psfinaki
commented
Oct 26, 2022
@auduchinok hey there, would you like to continue on that? I can help with resolving conflicts if needed. Also, probably some testing would be useful here. |
auduchinok
commented
Oct 26, 2022
@psfinaki Yes, I'm going to get back to it. Perhaps I'll need to rethink the approach here... I'll resolve the conflicts myself, thanks! |
psfinaki
commented
Oct 26, 2022
@auduchinok, thanks, reach out if you need any help! |
auduchinok
commented
Jun 20, 2023
This has been superseded by #15255 and #15334. The situation with top-level expressions (i.e. at the module scope) is not as good as I'd want it to be, but it'd be really difficult to change it. The good news are local binary expressions seem to be much more common and PRs above improve the recovery very noticeably for them. |
Adds parser recovery for unfinished binary app expressions that have their right operand missing and that are placed before other declarations or before the end of file.
End of file:
Before type decl:
Before attributes in a decl:
Thanks to @dsyme for guiding me on where to look at.
I'll start adding new tests when the existing ones are green.