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

Mon, 07 Mar 2011 14:31:50 +0000

author
mcimadamore
date
Mon, 07 Mar 2011 14:31:50 +0000
changeset 914
ca32f2986301
parent 554
9d9f26857129
child 2525
2eb010b6cb22
permissions
-rw-r--r--

7020044: Project Coin: diamond erroneous allowed on some anonymous inner classes
Summary: Disallow diamond on anonymous innner class creation expression (as per JSR 334's EDR)
Reviewed-by: jjg

mcimadamore@537 1 /*
mcimadamore@914 2 * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
mcimadamore@537 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
mcimadamore@537 4 *
mcimadamore@537 5 * This code is free software; you can redistribute it and/or modify it
mcimadamore@537 6 * under the terms of the GNU General Public License version 2 only, as
mcimadamore@537 7 * published by the Free Software Foundation.
mcimadamore@537 8 *
mcimadamore@537 9 * This code is distributed in the hope that it will be useful, but WITHOUT
mcimadamore@537 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
mcimadamore@537 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
mcimadamore@537 12 * version 2 for more details (a copy is included in the LICENSE file that
mcimadamore@537 13 * accompanied this code).
mcimadamore@537 14 *
mcimadamore@537 15 * You should have received a copy of the GNU General Public License version
mcimadamore@537 16 * 2 along with this work; if not, write to the Free Software Foundation,
mcimadamore@537 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
mcimadamore@537 18 *
ohair@554 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@554 20 * or visit www.oracle.com if you need additional information or have any
ohair@554 21 * questions.
mcimadamore@537 22 */
mcimadamore@537 23
mcimadamore@537 24 /*
mcimadamore@537 25 * @test
mcimadamore@914 26 * @bug 6939620 7020044
mcimadamore@537 27 *
mcimadamore@914 28 * @summary basic test for diamond (simple/qualified type-expressions)
mcimadamore@537 29 * @author mcimadamore
mcimadamore@537 30 * @compile Pos02.java
mcimadamore@537 31 * @run main Pos02
mcimadamore@537 32 */
mcimadamore@537 33
mcimadamore@537 34 public class Pos02 {
mcimadamore@537 35
mcimadamore@537 36 static class Foo<X> {
mcimadamore@537 37 Foo(X x) {}
mcimadamore@537 38 <Z> Foo(X x, Z z) {}
mcimadamore@537 39 }
mcimadamore@537 40
mcimadamore@537 41 void testSimple() {
mcimadamore@537 42 Foo<Integer> f1 = new Foo<>(1);
mcimadamore@537 43 Foo<? extends Integer> f2 = new Foo<>(1);
mcimadamore@537 44 Foo<?> f3 = new Foo<>(1);
mcimadamore@537 45 Foo<? super Integer> f4 = new Foo<>(1);
mcimadamore@537 46
mcimadamore@914 47 Foo<Integer> f5 = new Foo<>(1, "");
mcimadamore@914 48 Foo<? extends Integer> f6 = new Foo<>(1, "");
mcimadamore@914 49 Foo<?> f7 = new Foo<>(1, "");
mcimadamore@914 50 Foo<? super Integer> f8 = new Foo<>(1, "");
mcimadamore@537 51 }
mcimadamore@537 52
mcimadamore@537 53 void testQualified() {
mcimadamore@537 54 Foo<Integer> f1 = new Pos02.Foo<>(1);
mcimadamore@537 55 Foo<? extends Integer> f2 = new Pos02.Foo<>(1);
mcimadamore@537 56 Foo<?> f3 = new Pos02.Foo<>(1);
mcimadamore@537 57 Foo<? super Integer> f4 = new Pos02.Foo<>(1);
mcimadamore@537 58
mcimadamore@914 59 Foo<Integer> f5 = new Pos02.Foo<>(1, "");
mcimadamore@914 60 Foo<? extends Integer> f6 = new Pos02.Foo<>(1, "");
mcimadamore@914 61 Foo<?> f7 = new Pos02.Foo<>(1, "");
mcimadamore@914 62 Foo<? super Integer> f8 = new Pos02.Foo<>(1, "");
mcimadamore@537 63 }
mcimadamore@537 64
mcimadamore@537 65 public static void main(String[] args) {
mcimadamore@537 66 Pos02 p2 = new Pos02();
mcimadamore@537 67 p2.testSimple();
mcimadamore@537 68 p2.testQualified();
mcimadamore@537 69 }
mcimadamore@537 70 }

mercurial