<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 10 Mar 2021, at 00:55, Guy Steele <<a href="mailto:guy.steele@oracle.com" class="">guy.steele@oracle.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class=""><br class="">
<br class="">
<blockquote type="cite" class="">On Mar 9, 2021, at 1:47 PM, Brian Goetz <<a href="mailto:brian.goetz@oracle.com" class="">brian.goetz@oracle.com</a>> wrote:<br class="">
<br class="">
<br class="">
<blockquote type="cite" class="">Apart from what have said about letting grobble to fully access to the bindings<br class="">
</blockquote>
<br class="">
Except that argument doesn't make sense.  Accessing the bindings is not a special behavior of grobble, but a natural consequence of flow scoping.  If I have P && g (or P & grobble(g)), then the scoping rules will tell us that the true set of P is present in
 g, and we're done.  Nothing special here.<br class="">
</blockquote>
<br class="">
<br class="">
Well, just to be fair, rules for flow scoping within expressions g && h already exist, but rules for P && g and P & Q do not yet exist.  It’s easy to see that they probably should exist, and that this can be done in a manner entirely analogous to the way flow
 scoping is already done in expressions, but it has been an implicit assumption in some of the past discussion that is worth making explicit.  “Consider it done!”  :-)<br class="">
<br class="">
</div>
</div>
</blockquote>
<br class="">
</div>
<div>The draft JEP does try to be reasonably informative on this matter:</div>
<div><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class="">
<div>A conditional-and pattern p & q introduces the union of the pattern variables introduced by the patterns p and q. The scope of any pattern variable declaration in p includes the pattern q. (This allows for a pattern such as String s & true(s.length() >
 1) -- a value matches this pattern if it can be cast to a String and that string has a length of two or more characters.)</div>
</blockquote>
<br class="">
<div class="">Gavin</div>
</body>
</html>