mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-19 23:04:57 +07:00
55 lines
1.2 KiB
Java
55 lines
1.2 KiB
Java
import java.io.Serializable;
|
|
|
|
interface Parametrized<T extends Number> {}
|
|
|
|
class Bug1<T extends Serializable>{
|
|
<I extends Number> Parametrized<I> foo(Parametrized<I> param) {
|
|
return null;
|
|
}
|
|
|
|
void bug1(Parametrized<? super T> param) {
|
|
foo(param);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
class Bug2<T extends Integer>{
|
|
<I extends Number> Parametrized<I> foo(Parametrized<I> param) {
|
|
return null;
|
|
}
|
|
|
|
void bug1(Parametrized<? super T> param) {
|
|
foo(param);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
class Test {
|
|
interface Parametrized<T extends Serializable> {}
|
|
|
|
class Bug1<T extends Serializable>{
|
|
<I extends Number> Parametrized<I> foo(Parametrized<I> param) {
|
|
return null;
|
|
}
|
|
|
|
void bug1(Parametrized<? super T> param) {
|
|
<error descr="Inferred type 'capture<? super T>' for type parameter 'I' is not within its bound; should extend 'java.lang.Number'">foo(param)</error>;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
class Bug2<T extends Integer>{
|
|
<I extends Number> Parametrized<I> foo(Parametrized<I> param) {
|
|
return null;
|
|
}
|
|
|
|
void bug1(Parametrized<? super T> param) {
|
|
<error descr="Inferred type 'capture<? super T>' for type parameter 'I' is not within its bound; should extend 'java.lang.Number'">foo(param)</error>;
|
|
}
|
|
|
|
|
|
}
|
|
} |