Fwd: [jvm-l] Newly introduced OpenJDK javac bug?
Rémi Forax
forax at univ-mlv.fr
Thu Jun 9 08:23:13 PDT 2011
On 06/09/2011 04:36 PM, Charles Oliver Nutter wrote:
> I accept this analysis as written. I do however have a few
> questions/comments.
>
> * This seems like it only affects cases where you have primitives
> butting up against a varargs Object..., correct? Only in those cases
> do you have a method invocation conversion from a type that does not
> subclass Object. Edge-casey.
>
> * It is unexpected, albeit correct according to specification. A few
> reasons:
>
> ** The int => Object conversion is via Integer, which *is* a subtype
> relationship. I know the spec does not provide for reevaluating
> specificity after a method invocation conversion...but perhaps it should.
int => Object is a not a subtyping conversion, remember that
subtype as defined by Liskov is a relation between objects.
int is not an object type in Java.
>
> ** int *is* more specific than Object from a programmer/development
> perspective. Another way of looking at specificity would be "fewer
> combinations of argument types apply". That's clearly the case here.
more specific means is the a most specific subtype, so int is not more
specific than Object here
because there is not subtype/supertype relation between int and Object
in Java.
>
> I suspect I won't be the only one to run into this new behavior. As it
> stands, the methods in question in JRuby no longer need the varargs
> forms, so I'm removing them.
>
> - Charlie
cheers,
Rémi
More information about the compiler-dev
mailing list