test/tools/javac/generics/rawOverride/AttributeSet.java

Thu, 25 Aug 2011 17:18:25 -0700

author
schien
date
Thu, 25 Aug 2011 17:18:25 -0700
changeset 1067
f497fac86cf9
parent 554
9d9f26857129
child 2525
2eb010b6cb22
permissions
-rw-r--r--

Added tag jdk8-b02 for changeset b3c059de2a61

     1 /*
     2  * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  */
    24 /*
    25  * @test
    26  * @bug 5073079
    27  * @summary Allow unchecked override of generified methods in
    28  * parameterless classes
    29  * @author Peter von der Ah\u00e9
    30  *
    31  * @compile -Xlint:unchecked -Werror AttributeSet.java
    32  */
    34 interface Attribute<T> { }
    36 interface AttributeSet2 {
    37     <T> Attribute<?> get(Class<T> category);
    38 }
    40 class AttributeSet2Impl implements AttributeSet2 {
    41     public Attribute get(Class category) { return null; }
    42 }
    44 interface AttributeSet3 {
    45     Attribute<?> get(Class<?> category);
    46 }
    48 class AttributeSet3Impl implements AttributeSet3 {
    49     public Attribute get(Class category) { return null; }
    50 }
    52 interface AttributeSet4 {
    53     Attribute<?> get(Number category);
    54 }
    56 class AttributeSet4Impl implements AttributeSet4 {
    57     public Attribute get(Number category) { return null; }
    58 }
    60 interface AttributeSet5 {
    61     Attribute<?> get(Attribute<Number> category);
    62 }
    64 class AttributeSet5Impl implements AttributeSet5 {
    65     public Attribute get(Attribute category) { return null; }
    66 }
    68 interface I1<T> {
    69     void f(Attribute<T> l);
    70 }
    72 class C1 implements I1<String> {
    73     public void f(Attribute l) { }
    74     void test() {
    75         Attribute<Number> n = null;
    76         f(n);
    77     }
    78 }
    80 interface A2 {
    81     void f(Attribute<String> a);
    82 }
    84 class B2 {
    85     public void f(Attribute a) { }
    86 }
    88 class C2 extends B2 implements A2 {
    89     void test(Attribute<Number> a) {
    90         f(a);
    91     }
    92 }

mercurial