| class TopGene<T> { | |
| } | |
| class MidRaw extends TopGene { | |
| } | |
| class BottomGene<T> extends MidRaw { | |
| } | |
| class GeneType<T extends TopGene<String>> { | |
| } | |
| class GeneUser { | |
| public void success(GeneType<? extends BottomGene<String>> p) { | |
| } | |
| public void fail(GeneType<<error descr="Type parameter '? super BottomGene<String>' is not within its bound; should extend 'TopGene<java.lang.String>'">? super BottomGene<String></error>> p) { | |
| } | |
| } |