{"atom":"regression/batch11-parse-cluster","family":"regression","slug":"batch11-parse-cluster","header":{"atom":"regression/batch11-parse-cluster","kind":"whole-program — a minimal repro, not yet reduced to an atom","source":"curated"},"axes":null,"cols":null,"engines":["rakudo-2026.07","rakupp-3.14.0"],"kinds":["ref","pp"],"defFrom":"rakupp:t/regression/batch11-parse-cluster.raku","counts":{"a":1,"f":0,"d":0,"c":0,"r":0,"n":0},"files":["atoms/regression/batch11-parse-cluster.grid"],"records":[["0001","","# Regression: batch 11 parse/dispatch cluster (HTTP::UserAgent, Text::Utils,\n# JSON::Class, Digest triage). Contract: exit 0 + last line PASS.\nmy @fail;\n\n# 1. if/elsif binding with a trait\nmy $x = 5;\nif $x -> $y is copy { $y++; @fail.push('if-copy') unless $y == 6 }\nif 0 -> $y { } elsif \"b\" -> $z is copy { @fail.push('elsif-copy') unless $z eq \"b\" }\n\n# 2. quote-ish chars as word-list members inside a token body\ngrammar G1 {\n    token TOP { <tchar>+ }\n    token tchar { || < ! # $ % & ' * + - . ^ _ ` | ~ > || <[a..z]> }\n}\n@fail.push('wordlist-token') unless G1.parse(\"a'b#c\");\n\n# 3. comma-delimited match regex\n@fail.push('comma-m') unless \"ABC\" ~~ m:i,^abc$,;\n\n# 4. indented pod inside a sub body\nsub f4($n) {\n    my $r = $n + 1;\n    =begin comment\n    this { is } not [ code\n    =end comment\n    $r\n}\n@fail.push('indented-pod') unless f4(4) == 5;\n\n# 5. enum with a trait argument before the value list\nenum E5 is export(:tag) < A5 B5 C5 >;\n@fail.push('enum-trait-arg') unless B5.value == 1;\n\n# 6. negated container identity\nmy $a6 = 1; my $b6 = 2;\n@fail.push('bang-bind-id') unless $a6 !=:= $b6;\n\n# 7. compiler version is rakupp's own release version (not a Rakudo date)\n@fail.push('compiler-version') unless $*RAKU.compiler.version >= v1;\n@fail.push('lang-version') unless $*RAKU.version.Str.starts-with('6');\n\n# 8. Blob does not bind Str params in dispatch\nmulti f8(Str $s) { 'str' }\nmulti f8(blob8 $b) { 'blob' }\n@fail.push('blob-dispatch') unless f8(\"x\".encode) eq 'blob' && f8(\"x\") eq 'str';\nsub f8b(--> blob32) { blob32.new }\n@fail.push('blob32-rettype') unless (try { f8b(); True }) // False;\n\nif @fail { note \"FAILED: @fail[]\"; say 'FAIL' } else { say 'PASS' }","output PASS","a",["PASS","PASS"],0,[["budget","20s"]]]]}