test/tools/javac/generics/diamond/pos/Pos03.java

changeset 543
97b6fa97b8dd
parent 383
8109aa93b212
parent 537
9d9d08922405
child 554
9d9f26857129
     1.1 --- a/test/tools/javac/generics/diamond/pos/Pos03.java	Thu Apr 22 16:54:44 2010 -0700
     1.2 +++ b/test/tools/javac/generics/diamond/pos/Pos03.java	Thu Apr 29 14:10:24 2010 -0700
     1.3 @@ -1,10 +1,33 @@
     1.4  /*
     1.5 - * @test /nodynamiccopyright/
     1.6 - * @bug 6840638
     1.7 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
     1.8 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.9   *
    1.10 - * @summary  Project Coin: Improved Type Inference for Generic Instance Creation (aka 'diamond')
    1.11 + * This code is free software; you can redistribute it and/or modify it
    1.12 + * under the terms of the GNU General Public License version 2 only, as
    1.13 + * published by the Free Software Foundation.
    1.14 + *
    1.15 + * This code is distributed in the hope that it will be useful, but WITHOUT
    1.16 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    1.17 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    1.18 + * version 2 for more details (a copy is included in the LICENSE file that
    1.19 + * accompanied this code).
    1.20 + *
    1.21 + * You should have received a copy of the GNU General Public License version
    1.22 + * 2 along with this work; if not, write to the Free Software Foundation,
    1.23 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1.24 + *
    1.25 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    1.26 + * CA 95054 USA or visit www.sun.com if you need additional information or
    1.27 + * have any questions.
    1.28 + */
    1.29 +
    1.30 +/*
    1.31 + * @test
    1.32 + * @bug 6939620
    1.33 + *
    1.34 + * @summary  Switch to 'complex' diamond inference scheme
    1.35   * @author mcimadamore
    1.36 - * @compile Pos03.java -source 1.7
    1.37 + * @compile Pos03.java
    1.38   * @run main Pos03
    1.39   *
    1.40   */
    1.41 @@ -17,69 +40,69 @@
    1.42      }
    1.43  
    1.44      void testSimple() {
    1.45 -        Foo<Integer> f1 = new Foo<>(1); //new Foo<Integer> created
    1.46 -        Foo<? extends Integer> f2 = new Foo<>(1); //new Foo<Integer> created
    1.47 -        Foo<?> f3 = new Foo<>(1); //new Foo<Object> created
    1.48 -        Foo<? super Integer> f4 = new Foo<>(1); //new Foo<Object> created
    1.49 +        Foo<Integer> f1 = new Foo<>(1);
    1.50 +        Foo<? extends Integer> f2 = new Foo<>(1);
    1.51 +        Foo<?> f3 = new Foo<>(1);
    1.52 +        Foo<? super Integer> f4 = new Foo<>(1);
    1.53  
    1.54 -        Foo<Integer> f5 = new Foo<>(1){}; //new Foo<Integer> created
    1.55 -        Foo<? extends Integer> f6 = new Foo<>(1){}; //new Foo<Integer> created
    1.56 -        Foo<?> f7 = new Foo<>(1){}; //new Foo<Object> created
    1.57 -        Foo<? super Integer> f8 = new Foo<>(1){}; //new Foo<Object> created
    1.58 +        Foo<Integer> f5 = new Foo<>(1){};
    1.59 +        Foo<? extends Integer> f6 = new Foo<>(1){};
    1.60 +        Foo<?> f7 = new Foo<>(1){};
    1.61 +        Foo<? super Integer> f8 = new Foo<>(1){};
    1.62  
    1.63 -        Foo<Integer> f9 = new Foo<>(1, ""); //new Foo<Integer> created
    1.64 -        Foo<? extends Integer> f10 = new Foo<>(1, ""); //new Foo<Integer> created
    1.65 -        Foo<?> f11 = new Foo<>(1, ""); //new Foo<Object> created
    1.66 -        Foo<? super Integer> f12 = new Foo<>(1, ""); //new Foo<Object> created
    1.67 +        Foo<Integer> f9 = new Foo<>(1, "");
    1.68 +        Foo<? extends Integer> f10 = new Foo<>(1, "");
    1.69 +        Foo<?> f11 = new Foo<>(1, "");
    1.70 +        Foo<? super Integer> f12 = new Foo<>(1, "");
    1.71  
    1.72 -        Foo<Integer> f13 = new Foo<>(1, ""){}; //new Foo<Integer> created
    1.73 -        Foo<? extends Integer> f14 = new Foo<>(1, ""){}; //new Foo<Integer> created
    1.74 -        Foo<?> f15 = new Foo<>(1, ""){}; //new Foo<Object> created
    1.75 -        Foo<? super Integer> f16 = new Foo<>(1, ""){}; //new Foo<Object> created
    1.76 +        Foo<Integer> f13 = new Foo<>(1, ""){};
    1.77 +        Foo<? extends Integer> f14 = new Foo<>(1, ""){};
    1.78 +        Foo<?> f15 = new Foo<>(1, ""){};
    1.79 +        Foo<? super Integer> f16 = new Foo<>(1, ""){};
    1.80      }
    1.81  
    1.82      void testQualified_1() {
    1.83 -        Foo<Integer> f1 = new Pos03<U>.Foo<>(1); //new Foo<Integer> created
    1.84 -        Foo<? extends Integer> f2 = new Pos03<U>.Foo<>(1); //new Foo<Integer> created
    1.85 -        Foo<?> f3 = new Pos03<U>.Foo<>(1); //new Foo<Object> created
    1.86 -        Foo<? super Integer> f4 = new Pos03<U>.Foo<>(1); //new Foo<Object> created
    1.87 +        Foo<Integer> f1 = new Pos03<U>.Foo<>(1);
    1.88 +        Foo<? extends Integer> f2 = new Pos03<U>.Foo<>(1);
    1.89 +        Foo<?> f3 = new Pos03<U>.Foo<>(1);
    1.90 +        Foo<? super Integer> f4 = new Pos03<U>.Foo<>(1);
    1.91  
    1.92 -        Foo<Integer> f5 = new Pos03<U>.Foo<>(1){}; //new Foo<Integer> created
    1.93 -        Foo<? extends Integer> f6 = new Pos03<U>.Foo<>(1){}; //new Foo<Integer> created
    1.94 -        Foo<?> f7 = new Pos03<U>.Foo<>(1){}; //new Foo<Object> created
    1.95 -        Foo<? super Integer> f8 = new Pos03<U>.Foo<>(1){}; //new Foo<Object> created
    1.96 +        Foo<Integer> f5 = new Pos03<U>.Foo<>(1){};
    1.97 +        Foo<? extends Integer> f6 = new Pos03<U>.Foo<>(1){};
    1.98 +        Foo<?> f7 = new Pos03<U>.Foo<>(1){};
    1.99 +        Foo<? super Integer> f8 = new Pos03<U>.Foo<>(1){};
   1.100  
   1.101 -        Foo<Integer> f9 = new Pos03<U>.Foo<>(1, ""); //new Foo<Integer> created
   1.102 -        Foo<? extends Integer> f10 = new Pos03<U>.Foo<>(1, ""); //new Foo<Integer> created
   1.103 -        Foo<?> f11 = new Pos03<U>.Foo<>(1, ""); //new Foo<Object> created
   1.104 -        Foo<? super Integer> f12 = new Pos03<U>.Foo<>(1, ""); //new Foo<Object> created
   1.105 +        Foo<Integer> f9 = new Pos03<U>.Foo<>(1, "");
   1.106 +        Foo<? extends Integer> f10 = new Pos03<U>.Foo<>(1, "");
   1.107 +        Foo<?> f11 = new Pos03<U>.Foo<>(1, "");
   1.108 +        Foo<? super Integer> f12 = new Pos03<U>.Foo<>(1, "");
   1.109  
   1.110 -        Foo<Integer> f13 = new Pos03<U>.Foo<>(1, ""){}; //new Foo<Integer> created
   1.111 -        Foo<? extends Integer> f14 = new Pos03<U>.Foo<>(1, ""){}; //new Foo<Integer> created
   1.112 -        Foo<?> f15 = new Pos03<U>.Foo<>(1, ""){}; //new Foo<Object> created
   1.113 -        Foo<? super Integer> f16 = new Pos03<U>.Foo<>(1, ""){}; //new Foo<Object> created
   1.114 +        Foo<Integer> f13 = new Pos03<U>.Foo<>(1, ""){};
   1.115 +        Foo<? extends Integer> f14 = new Pos03<U>.Foo<>(1, ""){};
   1.116 +        Foo<?> f15 = new Pos03<U>.Foo<>(1, ""){};
   1.117 +        Foo<? super Integer> f16 = new Pos03<U>.Foo<>(1, ""){};
   1.118      }
   1.119  
   1.120      void testQualified_2(Pos03<U> p) {
   1.121 -        Foo<Integer> f1 = p.new Foo<>(1); //new Foo<Integer> created
   1.122 -        Foo<? extends Integer> f2 = p.new Foo<>(1); //new Foo<Integer> created
   1.123 -        Foo<?> f3 = p.new Foo<>(1); //new Foo<Object> created
   1.124 -        Foo<? super Integer> f4 = p.new Foo<>(1); //new Foo<Object> created
   1.125 +        Foo<Integer> f1 = p.new Foo<>(1);
   1.126 +        Foo<? extends Integer> f2 = p.new Foo<>(1);
   1.127 +        Foo<?> f3 = p.new Foo<>(1);
   1.128 +        Foo<? super Integer> f4 = p.new Foo<>(1);
   1.129  
   1.130 -        Foo<Integer> f5 = p.new Foo<>(1){}; //new Foo<Integer> created
   1.131 -        Foo<? extends Integer> f6 = p.new Foo<>(1){}; //new Foo<Integer> created
   1.132 -        Foo<?> f7 = p.new Foo<>(1){}; //new Foo<Object> created
   1.133 -        Foo<? super Integer> f8 = p.new Foo<>(1){}; //new Foo<Object> created
   1.134 +        Foo<Integer> f5 = p.new Foo<>(1){};
   1.135 +        Foo<? extends Integer> f6 = p.new Foo<>(1){};
   1.136 +        Foo<?> f7 = p.new Foo<>(1){};
   1.137 +        Foo<? super Integer> f8 = p.new Foo<>(1){};
   1.138  
   1.139 -        Foo<Integer> f9 = p.new Foo<>(1, ""); //new Foo<Integer> created
   1.140 -        Foo<? extends Integer> f10 = p.new Foo<>(1, ""); //new Foo<Integer> created
   1.141 -        Foo<?> f11 = p.new Foo<>(1, ""); //new Foo<Object> created
   1.142 -        Foo<? super Integer> f12 = p.new Foo<>(1, ""); //new Foo<Object> created
   1.143 +        Foo<Integer> f9 = p.new Foo<>(1, "");
   1.144 +        Foo<? extends Integer> f10 = p.new Foo<>(1, "");
   1.145 +        Foo<?> f11 = p.new Foo<>(1, "");
   1.146 +        Foo<? super Integer> f12 = p.new Foo<>(1, "");
   1.147  
   1.148 -        Foo<Integer> f13 = p.new Foo<>(1, ""){}; //new Foo<Integer> created
   1.149 -        Foo<? extends Integer> f14 = p.new Foo<>(1, ""){}; //new Foo<Integer> created
   1.150 -        Foo<?> f15 = p.new Foo<>(1, ""){}; //new Foo<Object> created
   1.151 -        Foo<? super Integer> f16 = p.new Foo<>(1, ""){}; //new Foo<Object> created
   1.152 +        Foo<Integer> f13 = p.new Foo<>(1, ""){};
   1.153 +        Foo<? extends Integer> f14 = p.new Foo<>(1, ""){};
   1.154 +        Foo<?> f15 = p.new Foo<>(1, ""){};
   1.155 +        Foo<? super Integer> f16 = p.new Foo<>(1, ""){};
   1.156      }
   1.157  
   1.158      public static void main(String[] args) {

mercurial