-
Bug
-
Resolution: Fixed
-
P5
-
None
-
b26
The following produces a rawtype warning, even though the type is used as a qualifier of a method reference. Generally, rawtype warnings do not occur in this context, but something strange about this case is triggering it. (Hint: removing the wildcard will make the warning go away.)
void test(Box<? extends Box<Number>> b) {
Number n = b.<Number>map(Box::get).get();
}
interface Func<S,T> { T apply(S arg); }
interface Box<T> {
T get();
<R> Box<R> map(Func<T,R> f);
}
warning: [rawtypes] found raw type: Box
Number n = b.<Number>map(Box::get).get();
^
missing type arguments for generic class Box<T>
where T is a type-variable:
T extends Object declared in interface Box
void test(Box<? extends Box<Number>> b) {
Number n = b.<Number>map(Box::get).get();
}
interface Func<S,T> { T apply(S arg); }
interface Box<T> {
T get();
<R> Box<R> map(Func<T,R> f);
}
warning: [rawtypes] found raw type: Box
Number n = b.<Number>map(Box::get).get();
^
missing type arguments for generic class Box<T>
where T is a type-variable:
T extends Object declared in interface Box
- relates to
-
JDK-8225731 incorrect rawtypes diagnostic on method reference
-
- Open
-
-
JDK-8063052 Inference chokes on wildcard derived from method reference
-
- Closed
-