test/tools/javac/typeAnnotations/failures/LintCast.java

Fri, 26 Jun 2009 19:12:41 -0700

author
jjg
date
Fri, 26 Jun 2009 19:12:41 -0700
changeset 309
664edca41e34
child 384
ed31953ca025
permissions
-rw-r--r--

6855544: add missing files
Reviewed-by: jjg, mcimadamore, darcy
Contributed-by: mernst@cs.washington.edu, mali@csail.mit.edu, mpapi@csail.mit.edu

     1 /*
     2  * Copyright 2008 Sun Microsystems, Inc.  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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
    21  * have any questions.
    22  */
    24 import java.util.List;
    26 /*
    27  * @test
    28  * @bug 6843077
    29  * @summary test that compiler doesn't warn about annotated redundant casts
    30  * @author Mahmood Ali
    31  * @compile/ref=LintCast.out -Xlint:cast -XDrawDiagnostics -source 1.7 LintCast.java
    32  */
    33 class LintCast {
    34     void unparameterized() {
    35         String s = "m";
    36         String s1 = (String)s;
    37         String s2 = (@A String)s;
    38     }
    40     void parameterized() {
    41         List<String> l = null;
    42         List<String> l1 = (List<String>)l;
    43         List<String> l2 = (List<@A String>)l;
    44     }
    46     void array() {
    47         int @A [] a = null;
    48         int[] a1 = (int[])a;
    49         int[] a2 = (int @A [])a;
    50     }
    52     void sameAnnotations() {
    53         @A String annotated = null;
    54         String unannotated = null;
    56         // compiler ignore annotated casts even if redundant
    57         @A String anno1 = (@A String)annotated;
    59         // warn if redundant without an annotation
    60         String anno2 = (String)annotated;
    61         String unanno2 = (String)unannotated;
    62     }
    63 }
    65 @interface A { }

mercurial