langtools/test/tools/javac/generics/diamond/neg/Neg09.java
changeset 8635 383a416a2bdf
parent 5321 c8efe769cb3b
child 29776 984a79b71cfe
equal deleted inserted replaced
8634:222829aedfe4 8635:383a416a2bdf
     1 /*
     1 /*
     2  * @test /nodynamiccopyright/
     2  * @test /nodynamiccopyright/
     3  * @bug 6939620 6894753
     3  * @bug 7020044
     4  *
     4  *
     5  * @summary  Switch to 'complex' diamond inference scheme
     5  * @summary  Check that diamond is not allowed with anonymous inner class expressions
     6  * @author mcimadamore
     6  * @author Maurizio Cimadamore
     7  * @compile/fail/ref=Neg09.out Neg09.java -XDrawDiagnostics
     7  * @compile/fail/ref=Neg09.out Neg09.java -XDrawDiagnostics
     8  *
     8  *
     9  */
     9  */
    10 
    10 
    11 class Neg09 {
    11 class Neg09 {
    12     static class Foo<X extends Number & Comparable<Number>> {}
    12     class Member<X> {}
    13     static class DoubleFoo<X extends Number & Comparable<Number>,
       
    14                            Y extends Number & Comparable<Number>> {}
       
    15     static class TripleFoo<X extends Number & Comparable<Number>,
       
    16                            Y extends Number & Comparable<Number>,
       
    17                            Z> {}
       
    18 
    13 
    19     Foo<?> fw = new Foo<>();
    14     static class Nested<X> {}
    20     DoubleFoo<?,?> dw = new DoubleFoo<>();
    15 
    21     TripleFoo<?,?,?> tw = new TripleFoo<>();
    16     void testSimple() {
       
    17         Member<?> m1 = new Member<>() {};
       
    18         Nested<?> m2 = new Nested<>() {};
       
    19     }
       
    20 
       
    21     void testQualified() {
       
    22         Member<?> m1 = this.new Member<>() {};
       
    23         Nested<?> m2 = new Neg09.Nested<>() {};
       
    24     }
    22 }
    25 }