[request for review] 4877954: RFE: Special syntax for core interfaces

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Mon Nov 19 14:38:16 PST 2007


I have read both versions of your request for a review.

The most obvious error seems to be in ConstFold, where you are comparing 
the string value of the constants, which seems unlikely to yield the 
correct result.

In Lower.visitBinary, it seems wrong to drop this code in at the head of 
the method. If nothing else, I would think you should translate the lhs 
and rhs first.
Then in line 2785, the asymmetry of taking the primitiveType from then 
lhs seems incorrect, unless you can demonstrate that the lhs and rhs 
will have the same type.

In the tests, you use a relative small set of expressions on either side 
of the comparables -- for example, I didn't see any expressions either 
side (other that variables and function calls).

Separately, Christian Plesner Hansen is proposing a standardized way of 
enabling language extensions based on a new -L switch. That seems like a 
good idea, and it would be nice to standardize on that, rather than 
using the -XD space which is more for the hidden options we don't really 
want users to know about :-)

-- Jon

Dmytro Sheyko wrote:
> Hi,
> I've made some changes to patch:
> 1. big*Type in Symtab were removed and Lower.visitBinary() was 
> rewritten using Types.unboxedType() (as Remi Forax suggested)
> 2. 'genuine comparable method' is choosen rather than its bridge 
> (Lower.visitBinary).
> 3. bug fixed: following code was mistakenly rejected by compiler:
>   static <B, A extends Comparable<? super B>> boolean lt1(A a, B b) {
>      return a < b;
>   }
> I have attached new svn diff and jtreg tests I used. 

More information about the compiler-dev mailing list