"Cannot resolve symbol al" after `else if (! (l instanceof ArrayList al))`
David Alayachew
davidalayachew at gmail.com
Sat Jun 7 14:55:10 UTC 2025
This definitely looks like a bug. Maybe some of the amber folks are busy
with Valhalla or something, but I can't see this NOT being a bug.
@Angelos Bimpoudis <angelos.bimpoudis at oracle.com> poke poke poke
On Sat, Jun 7, 2025, 3:14 AM Jean-Noël Rouvignac <
jean-noel.rouvignac at pingidentity.com> wrote:
> Hello folks,
>
> JDK 25 rampdown phase 1 is now behind us, congrats and thanks for all the
> work done to get there!
>
> I am reviving this use case to see if anyone agrees that this may be a bug?
>
> Thank you,
> Jean-Noel
>
>
> On Wed, Apr 16, 2025 at 11:37 AM Jean-Noël Rouvignac <
> jean-noel.rouvignac at pingidentity.com> wrote:
>
>> Hello amber-dev folks!
>>
>> While using pattern matching for instanceof I noticed a small incoherent
>> oddity.
>>
>> Take this code:
>> ```
>> static void ensureCapacity(List l) {
>> if (l instanceof LinkedList) {
>> throw new IllegalArgumentException("Use an efficient list
>> implementation");
>> } else if (!(l instanceof ArrayList al)) {
>> return;
>> }
>> al.ensureCapacity(10);
>> System.out.println("done");
>> }
>>
>> ensureCapacity(new ArrayList());
>> ```
>>
>> The compiler rejects this code with: `Cannot resolve symbol 'al'`.
>> (I have tested that code with JDK 24 in the playground (
>> https://dev.java/playground) but also in my IDE with JDK 21)
>>
>> However #1, removing the `else` keyword makes the code successfully
>> compile:
>> ```
>> }
>> if (!(l instanceof ArrayList al)) {
>> return;
>> }
>> ```
>>
>> However #2, adding an additional `else` keyword makes the code
>> successfully compile:
>> ```
>> } else if (!(l instanceof ArrayList al)) {
>> return;
>> } else {
>> al.ensureCapacity(10);
>> System.out.println("done");
>> }
>> ```
>>
>> While option #1 and #2 are acceptable workarounds, it looks to me like
>> there could be a bug in javac? Therefore I am bringing this to your
>> attention so you can decide if it is a bug or not.
>>
>> I searched the JDK's bug tracker for this specific case, but could not
>> find anything related.
>>
>> Thanks!
>> Jean-Noël
>>
>
>
> --
> <https://www.pingidentity.com/> <https://www.pingidentity.com/>[image:
> Ping Identity] <https://www.pingidentity.com/>
> Jean-Noel Rouvignac
> Senior Principal Software Engineer
> jean-noel.rouvignac at pingidentity.com
>
> <https://www.pingidentity.com/en/events/youniverse.html>
> <https://www.pingidentity.com/en/events/youniverse.html>
> <https://www.pingidentity.com/en/events/youniverse.html>
> <https://www.pingidentity.com/en/gartner-magic-quadrant-access-management.html?utm_medium=email>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/virtualsummit.html?utm_source=sales&utm_medium=email&utm_campaign=VFE-GLOBAL-2025.03.18-19-PingVirtualEvent>
> <https://www.pingidentity.com/en/events/youniverse.html>
> Connect with us: [image: Glassdoor logo]
> <https://www.glassdoor.com/Overview/Working-at-Ping-Identity-EI_IE380907.11,24.htm>[image:
> LinkedIn logo] <https://www.linkedin.com/company/21870>[image: Twitter
> logo] <https://twitter.com/pingidentity>[image: YouTube logo]
> <https://www.youtube.com/user/PingIdentityTV>[image: Blog logo]
> <https://www.pingidentity.com/en/blog.html>
> To view our privacy policy, click here
> <https://www.pingidentity.com/en/legal/privacy.html>
> To stop receiving these emails, click here
> <https://4.pingidentity.com/PreferenceCenter.html>
>
> *CONFIDENTIALITY NOTICE: This email may contain confidential and
> privileged material for the sole use of the intended recipient(s). Any
> review, use, distribution or disclosure by others is strictly prohibited.
> If you have received this communication in error, please notify the sender
> immediately by e-mail and delete the message and any file attachments from
> your computer. Thank you.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/amber-dev/attachments/20250607/57009e54/attachment.htm>
More information about the amber-dev
mailing list