Vincent GAY-PARA <[EMAIL PROTECTED]> writes:

> Hi,
> 
> At DMS we tried to compile GNU Classpath with KJC
> (http://www.dms.at/kjc) and we encoutered some problems.
> 
> ObjectInputStream:
> ==================
>   problem with an expression (java/io/ObjectInputStream.java:1188:
> Variable "value" cannot be initialized by a value of type "int" [JLS
> 4.5.4])
>   Which compiler do you use ???
>   please rewrite:
>   char value = default_initialize ? 0 : this.realInputStream.readChar
> ();
>   as:
>   char value = default_initialize ? (char)0 :
> this.realInputStream.readChar ();
> 
> see also: java/io/ObjectInputStream.java:1223: Variable "value" cannot
> be initialized by a value of type "int" [JLS 4.5.4]

I believe this is a compiler error, not an error in the code.  `value'
is not being initialized with a value of type int, but with a value of
type char.  JLS 15.24:

The type of a conditional expression is determined as follows:

     ...

     Otherwise, if the second and third operands have numeric type,
     then there are several cases:
        
        ...

        If one of the operands is of type T where T is byte, short, or
        char, and the other operand is a constant expression of type
        int whose value is representable in type T, then the type of
        the conditional expression is T.

        ...

-- 
Geoff Berry

Reply via email to