class RawAndPrimitive<T> {
    public T foo(T startValue) {
        return startValue;
    }

    // this tests that DefaultTypeHierarchy.visitPrimitive_Wildcard works
    public static void bar(float f) {
        // the lower bound of the resultant wildcard (which replaces the raw type argument) will be lower than
        // the default annotation on float
        //:: error: (argument.type.incompatible) :: warning: [unchecked] unchecked call to foo(T) as a member of the raw type RawAndPrimitive
        new RawAndPrimitive().foo(f);
    }
}
