Type equality for values

Paul Govereau paul.govereau at oracle.com
Fri Aug 1 17:10:13 UTC 2014


The following code is valid for reference types:

class A<T> {
     int x = 0;

     <T,U> boolean foo(A<T> a, A<U> b) {
         return (a == b);
     }
}

However, I don't think this makes sense for value types. In the case of 
reference types, the "top" is a realizable type, namely Object; but, for 
values the "top" is not realizable?

final __ByValue class A<T> {
     final int x = 0;

     <any T, any U> boolean foo(A<T> a, A<U> b) {
         return (a == b);  // <<--- type error ??
     }
}

Should this be a type error?

Paul



More information about the valhalla-dev mailing list