masaori335 commented on PR #13857:
URL: https://github.com/apache/trafficserver/pull/13857#issuecomment-6356715907

   @cmcfarlen Thank you for taking a look. After your three, I ran ~500 more 
synthetic snippets through both front ends (procedures, nested argument and 
default evaluation, VARS, conditions, modifiers, interpolation, sandbox 
policies, conf shape). Two more differences came out, and one known one had no 
parity case; all three are handled here:
   
   - 2306f7e7d6: a default naming a `$param` that nothing binds (`procedure 
syn::p($a, $b = $a)` called from a section). The CST emitter evaluates it in 
the caller's context, so it raises despite a collector and reports the caller's 
file at the procedure file's line and column. Sema collects it against the 
procedure file. Recorded as `CstBug.MISATTRIBUTES`, next to your default case 
since it is the same caller-scope bug.
   - 8f191feb74: with a collector, the CLI still hands an error-recovered parse 
tree to the front end. The CST emitter tolerates one; the AST builder crashes, 
which would add a `Visitor error` at 0:0 to every syntax error after the 
switchover. `compile_to_conf` now returns early when the collector already 
holds an error. The corpus has no such input, so the parity test couldn't see 
this one.
   - 01f5c2aa5f: procedure recursion. The CST emitter expands until 
`RecursionError`, which reaches the user as a bare `Visitor error` at 0:0; Sema 
reports the cycle with its chain. That one was only noted in a `test_sema.py` 
comment; it is now `CstBug.CRASHES` in the parity test.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to