New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
“parser did not give circumfix an EXPR” after “Re-implement colon list processing” commit #3000
Comments
|
Ping @skids |
|
The problem seems to be occurring in the return statement of There is a given/when wrapped in parens and used as a return value. Inside the given when is a check for hash key :exists. Something in there is conufising the parser. Abbreviated version of what it looks like method !unpack() {
my $type = self!unpack-uint8;
return (given $type {
...
when %unpack-for-type{$type} :exists {
%unpack-for-type{$type}(self);
}
default {
fail sprintf("Unknown type 0x%02x", $type);
}
});
} As In any case, I change Also, if I leave the return statement as is, but change the condition from At the very least, a pull-request can be made to fix MessagePack, but hopefully this info might help identify what's confusing the parser. |
|
Golfed... (when %()<>:exists { ... })These are ok when %()<>:exists { ... }
(when (%()<>:exists) { ... })Also, this issue is not specific to |
|
I tried to debug this but I'm a bit confused. So So the expected |
|
Ping @skids |
|
Fixed for now with c227693 . It spectests clean and makes |
|
Seems like it's not that simple… see https://colabti.org/irclogger/irclogger_log/perl6-dev?date=2019-06-29#l168 The code to trigger the issue gets weirder, but it's still somewhat realistic. |
- pre-check EXPRessions, filter out the undefined ones - refactor circumfix() and circumfix[] code into single sub - remove dead code
|
More complete solution pushed with a26e95b |
A more complete solution to rakudo#3000 - pre-check EXPRessions, filter out the undefined ones - refactor circumfix() and circumfix[] code into single sub - remove dead code
Error message during tests:
The text was updated successfully, but these errors were encountered: