paulk-asert commented on PR #2655:
URL: https://github.com/apache/groovy/pull/2655#issuecomment-5618404920

   Rebased onto the Groovy 7 master as two commits (the nine phase commits are 
squashed into the second):
   
   1. `GROOVY-12242` follow-up: pattern variable slots bound in a later 
`&&`/`||` operand were only initialised at their own `instanceof` site, which 
fails verification on master for e.g. `p instanceof String s && s.length() > 0 
&& s.trim() instanceof String t`; and `break`/`continue` now end an if arm for 
pattern-variable flow scoping. Standalone and cherry-pickable.
   2. The GEP-19 implementation re-lowered onto the first-class 
`SwitchExpression` of GROOVY-12255: no closure labels or closure-free fast path 
any more; each pattern arm is a `CaseStatement` with a boolean test label and 
`if (!(check)) break <arm>` matching steps, bindings via JEP 394 flow scoping 
(see the updated description). Exhaustiveness follows the existing 
switch-expression rule (error, not warning). The 
`fail/SwitchExpression_11x..15x` resources are now `15x..19x`.
   
   Verified with the full core test suite and the lint gate.
   


-- 
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