There seems to be a bug in 'javac', which lets you implicitly typecast a char
to a byte. Eg:

public class Test {
  public static void main(String args[]) {
    byte b = 'a';
}

'javac Test.java' compiles fine. That's from the Blackdown 1.3.0 JDK.

'jikes Test.java' reports:

Found 1 semantic error compiling "Test.java":

     3.                 byte b = 'a';
                                 <->
*** Error: A byte value must be an integer value (note that a character literal is not 
an integer value) in the range -128..127.


Which makes perfect sense, since a char is 16 bits, and a byte is 8 bits. This
is relevant to httpclient, which would not compile with jikes:

    [javac] Found 22 semantic errors compiling 
"/home/jeff/apache/jakarta/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/URIUtil.java":
    [javac]
    [javac]    703.             case '0':
    [javac]                          <->
....


I fixed httpclient with a typecast (email waiting in a moderator's queue
presumably), but I thought I'd raise awareness of the issue here, and take the
opportunity to do a bit of jikes advocacy ;)


--Jeff


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to