[External] : Re: Guards
John Rose
john.r.rose at oracle.com
Tue Mar 9 18:56:42 UTC 2021
On Mar 9, 2021, at 10:47 AM, Brian Goetz <brian.goetz at oracle.com> wrote:
>
>
>> Apart from what have said about letting grobble to fully access to the bindings
>
> 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.
Piling on:
If patterns ever have in-args (in addition to out-args,
and they will!), then flow-scoping, regularly applied,
will allow those in-args to access previously bound
out-args to the left, within the same compound pattern,
whether in an instanceof pattern or a case label pattern.
And, guards (whether built-in && as I claim they
should be) or a privileged use of in-args on a standard
method, will naturally have access to those same
leftward out-arg bindings.
I think it’s a great model. The reason we are agonizing
here is kind of artificial, because in-args in patterns
are a 99.99% probable future, of which guards are
the first manifestation.
— John
More information about the amber-spec-experts
mailing list