> From: "Brian Goetz" <brian.go...@oracle.com>
> To: "Remi Forax" <fo...@univ-mlv.fr>
> Cc: "amber-spec-experts" <amber-spec-experts@openjdk.java.net>
> Sent: Wednesday, January 26, 2022 1:28:19 PM
> Subject: Re: [External] : Re: Patterns and GADTs (was: Reviewing feedback on
> patterns in switch)

>> The instanceof example is not a source backward compatible change, remember 
>> that
>> instanceof is not a preview feature.

> I’m well aware, can you give an example where flow typing of *type variables
> only* might lead to incompatibility? (I’m aware that this is a possibility, 
> but
> you’re stating it like its a fact already on the table.) For example, where it
> would change overload selection (this is where flow typing for variables falls
> down, among other places.)

sure, 

sealed interface Node<T> { } 
record A<T>(T t) implements Node<T> { } 
record B(String s) implements Node<String> { } 

void foo(Object o) { } 
void foo(List<String> list) { } 

<T> void m() { 
if (node instanceof B b) { 
foo(List.<T>of()); 
} 
} 

Rémi 

Reply via email to