test/langtools/tools/javac/T8207224/ReturnTypeSubstitutableTest.java
changeset 53046 9b0d6ecd8e45
parent 53045 7dac5301ce71
child 53047 b732de3068f4
equal deleted inserted replaced
53045:7dac5301ce71 53046:9b0d6ecd8e45
     1 /*
       
     2  * @test /nodynamiccopyright/
       
     3  * @bug 8207224
       
     4  * @summary Javac compiles source code despite illegal use of unchecked conversions
       
     5  * @compile/fail/ref=ReturnTypeSubstitutableTest.out -XDrawDiagnostics ReturnTypeSubstitutableTest.java
       
     6  * @compile -source 12 ReturnTypeSubstitutableTest.java
       
     7  */
       
     8 
       
     9 class ReturnTypeSubstitutableTest {
       
    10     abstract class AbstractDemo<Request extends AbstractResult, Response extends AbstractResult> {
       
    11         protected abstract Response test(Request request);
       
    12     }
       
    13 
       
    14     abstract interface AbstractResult {}
       
    15 
       
    16     abstract interface SimpleResult extends AbstractResult {}
       
    17 
       
    18     class Result1 implements SimpleResult {}
       
    19 
       
    20     class OtherResult implements AbstractResult {}
       
    21 
       
    22     public class SimpleDemo<Request extends AbstractResult, Response extends AbstractResult> extends AbstractDemo<Request, Response> {
       
    23         @Override
       
    24         protected SimpleResult test(AbstractResult request) {
       
    25             return null;
       
    26         }
       
    27     }
       
    28 }