<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<font size="4" face="monospace">This is not a bug; this potential
feature was discussed at some length during the design process.
Another way this potential-feature could show up is:<br>
<br>
switch (container) { <br>
case Box(String s), Bag(String s): ... use s ...<br>
}<br>
<br>
The reason that we chose not to proceed with such "binding
merging" is that when you get inside the block, `je` is one
variable with two declarations; you don't really know where the
declaration is. (So IDE navigations like "go to declaration"
would have to learn to highlight TWO (or more) declarations, for
example.)<br>
<br>
This feature isn't fundamentally impossible, and we could consider
it again in the future, but it was a deliberate decision to not go
this far at this time.<br>
<br>
</font><br>
<div class="moz-cite-prefix">On 2/18/2024 6:53 AM, Charles wrote:<br>
</div>
<blockquote type="cite" cite="mid:CAN5K7+v0pn17HkUjSiYKbxt-Xu+Eq0xjP16Y4cz4F4S_n-uT6A@mail.gmail.com">
<div dir="ltr">
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">Hi
all</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">What
I'm about to report below is <b>openjdk 17</b>. </div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">This
doesn't compile</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#38761d">if (ex instanceof JedisException je<br>
|| (ex instanceof
ExecutionException ee && ee.getCause() instanceof
JedisException je)<br>
){<br>
</font></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#38761d"> ... blah blah</font></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#38761d">}</font></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">reason
being the second je is already defined in the scope. </div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><img src="cid:part1.0UJwsEDm.8d6EoBLa@oracle.com" alt="image.png" class="" width="562" height="58"><br>
</div>
<div>
<div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"><font color="#000000"><br>
</font></div>
<div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">if
you think about it. if
ex is je, then, the
second part won't
trigger. And if the
second part is
reached, then ex is
not je. Hence there is
only going to be one
statement mapped to
je. </div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">no
confusion here. I feel
this should be
allowed. </div>
<br>
</div>
<div><br>
</div>
<div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Let's
assume the above is
the way it should be.
I use different names
for the second
variable. </div>
<br>
</div>
<div><font color="#38761d"> if
(ex instanceof
JedisException je<br>
||
(ex instanceof
ExecutionException ee
&&
ee.getCause()
instanceof
JedisException
second_je)<br>
) {<br>
log.error(je);<br>
log.error(second_je);<br>
}</font><br>
</div>
<div><br>
</div>
<div><img src="cid:part2.JV9x87HL.eQpfVlYq@oracle.com" alt="image.png" class="" width="562" height="94"><br>
</div>
<div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">This
still doesn't
compile. </div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">I
would like to bring
this issue up for
discussion. </div>
<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div dir="ltr"><span style="font-size:12.8000001907349px"><font color="#000000">and as
always, have a great
day <br>
</font></span></div>
<div dir="ltr"><b style="font-size:12.8000001907349px"><font color="#000000"><br>
</font></b></div>
<div dir="ltr"><b><font color="#000000">Best
Regards<br>
</font></b>
<div><font face="arial, helvetica, sans-serif" color="#000000"><b>Charles</b></font></div>
<div><b><font style="background-color:rgb(255,255,255)" face="arial, helvetica, sans-serif" color="#000000"><br>
</font></b></div>
<div>
<p style="margin:0cm 0cm 0.0001pt"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>