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]
