bug com varargs e sobrecarga?

Parece haver um bug na implementação do Java varargs. Java não pode distinguir o tipo apropriado quando um método está sobrecarregado com diferentes tipos de parâmetros vararg.

Isso me dá um erroThe method ... is ambiguous for the type ...

Considere o seguinte código:

public class Test
{
    public static void main(String[] args) throws Throwable
    {
        doit(new int[]{1, 2}); // <- no problem
        doit(new double[]{1.2, 2.2}); // <- no problem
        doit(1.2f, 2.2f); // <- no problem
        doit(1.2d, 2.2d); // <- no problem
        doit(1, 2); // <- The method doit(double[]) is ambiguous for the type Test
    }

    public static void doit(double... ds)
    {
        System.out.println("doubles");
    }

    public static void doit(int... is)
    {
        System.out.println("ints");
    }
}

adocs diga: "De um modo geral, você não deve sobrecarregar um método varargs, ou será difícil para os programadores descobrir qual sobrecarga é chamada."

no entanto, eles não mencionam esse erro, e não são os programadores que estão achando difícil, é o compilador.

pensamentos?

EDITAR - Compilador: Sun jdk 1.6.0 u18

questionAnswers(3)

yourAnswerToTheQuestion