Oh, for me I just moved on to a proper bit of code. I filed the bug for the perfection of the parser so it's less exploitable. :)
"I code therefore I am!" On 1/26/19 8:17 PM, Timo Paulssen via RT wrote: > I believe the problem comes from `"{"` which actually starts an > interpolated code block containing a string immediately. That's also why > it doesn't complain about the "else" being in an odd place; it's also > inside the string! > > So here's an equivalent piece of code that shows what's wrong: > > if request.body[0] == "" ~ do { qq⟨{ say "JSON"} else {say "NOTJSON"}; > # my %bb = 1234 => 99; > (and here comes the closing quote for the qq that was missing in the original > code: ⟩ > > Simplifying a tiny bit more: > > if request.body[0] == "" ~ (say "JSON") ~ " else " ~ (say "NOTJSON") ~ "; > # my %bb = 1234 => 99; > again no closing double-quotes > > Does that help? > > On 25/01/2019 07:20, Aleks-Daniel Jakimenko-Aleksejev via RT wrote: >> Usually this happens when you have an unclosed string somewhere earlier in >> your >> code. >> >> That is: >> >> say "foo; ← oops! Forgot the closing " >> >> # $a ← we think that this is a comment, but actually it's part of the string >> above! >> On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote: >>> Hello: >>> >>> I ran into this while setting up a post test for json >>> in bailador. While compiling it flags the commented >>> line at the end as bad when the fail should be on the >>> check of request.body[0]. >>> >>> It happened with the latest rakudo built from scratch >>> as of Jan 23rd 2019 as well as rakudo-star 2018.10. >>> >>> Linux Mint system, 64 bit. >>> >>> >>> >>> >>> # --->perl6 t1.pl6 >>> # ===SORRY!=== Error while compiling >>> /home/userx/p6d/tests/latester/t1.pl6 >>> # Variable '%bb' is not declared >>> # at /home/userx/p6d/tests/latester/t1.pl6:97 >>> # ------> #pukes here #say ⏏%bb{"name"}; >>> >>> # code snippet that causes the parser to think >>> # the commented code below is not commented >>> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"}; >>> >>> # #my %bb = from-json(request.body); >>> # >>> # this one pukes >>> #pukes here #say %bb{"name"}; >