test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java

Tue, 24 Dec 2013 09:17:37 -0800

author
ksrini
date
Tue, 24 Dec 2013 09:17:37 -0800
changeset 2227
998b10c43157
parent 1563
bc456436c613
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8029230: Update copyright year to match last edit in jdk8 langtools repository for 2013
Reviewed-by: ksrini
Contributed-by: steve.sides@oracle.com

     1 /*
     2  * Copyright (c) 2009, 2013, 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 import static com.sun.tools.classfile.TypeAnnotation.TargetType.*;
    26 /*
    27  * @test
    28  * @summary Test population of reference info for type casts
    29  * @compile -g Driver.java ReferenceInfoUtil.java TypeCasts.java
    30  * @run main Driver TypeCasts
    31  */
    32 public class TypeCasts {
    34     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    35             typeIndex = 0)
    36     public String returnObject() {
    37         return "Object returnObject() { return (@TA String)null; }";
    38     }
    40     @TADescriptions({
    41         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    42                 typeIndex = 0),
    43         @TADescription(annotation = "TB", type = CAST,
    44                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
    45                 typeIndex = 0),
    46         @TADescription(annotation = "TC", type = CAST,
    47                 genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
    48                 typeIndex = 0)
    49     })
    50     public String returnObjectArray() {
    51         return "Object returnObjectArray() { return (@TC String @TA [] @TB [])null; }";
    52     }
    54     @TADescriptions({
    55         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    56                 typeIndex = 0),
    57         @TADescription(annotation = "TB", type = CAST,
    58                 genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
    59                 typeIndex = 0)
    60     })
    61     public String returnObjectGeneric() {
    62         return "Object returnObjectGeneric() { return (@TA List<@TB String>)null; }";
    63     }
    65     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    66             typeIndex = 0)
    67     public String returnPrim() {
    68         return "Object returnPrim() { return (@TA int)0; }";
    69     }
    71     @TADescriptions({
    72         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    73                 typeIndex = 0),
    74         @TADescription(annotation = "TB", type = CAST,
    75                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
    76                 typeIndex = 0)
    77     })
    78     public String returnPrimArray() {
    79         return "Object returnPrimArray() { return (@TB int @TA [])null; }";
    80     }
    82     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    83             typeIndex = 0)
    84     public String initObject() {
    85         return "void initObject() { Object a =  (@TA String)null; }";
    86     }
    88     @TADescriptions({
    89         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
    90                 typeIndex = 0),
    91         @TADescription(annotation = "TB", type = CAST,
    92                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
    93                 typeIndex = 0)
    94     })
    95     public String initObjectArray() {
    96         return "void initObjectArray() { Object a = (@TB String @TA [])null; }";
    97     }
    99     @TADescriptions({
   100         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   101                 typeIndex = 0),
   102         @TADescription(annotation = "TB", type = CAST,
   103                 genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
   104                 typeIndex = 0)
   105     })
   106     public String initObjectGeneric() {
   107         return "void initObjectGeneric() { Object a = (@TA List<@TB String>)null; }";
   108     }
   110     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   111             typeIndex = 0)
   112     public String initPrim() {
   113         return "void initPrim() { Object a =  (@TA int)0; }";
   114     }
   116     @TADescriptions({
   117         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   118                 typeIndex = 0),
   119         @TADescription(annotation = "TB", type = CAST,
   120                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
   121                 typeIndex = 0)
   122     })
   123     public String initPrimArray() {
   124         return "void initPrimArray() { Object a = (@TB int @TA [])null; }";
   125     }
   127     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   128             typeIndex = 0)
   129     public String eqtestObject() {
   130         return "void eqtestObject() { if (null == (@TA String)null); }";
   131     }
   133     @TADescriptions({
   134         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   135                 typeIndex = 0),
   136         @TADescription(annotation = "TB", type = CAST,
   137                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
   138                 typeIndex = 0)
   139     })
   140     public String eqtestObjectArray() {
   141         return "void eqtestObjectArray() { if (null == (@TB String @TA [])null); }";
   142     }
   144     @TADescriptions({
   145         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   146                 typeIndex = 0),
   147         @TADescription(annotation = "TB", type = CAST,
   148                 genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
   149                 typeIndex = 0)
   150     })
   151     public String eqtestObjectGeneric() {
   152         return "void eqtestObjectGeneric() { if (null == (@TA List<@TB String >)null); }";
   153     }
   155     @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   156             typeIndex = 0)
   157     // compiler optimizes away compile time constants casts
   158     public String eqtestPrim() {
   159         return "void eqtestPrim(int a) { if (0 == (@TA int)a); }";
   160     }
   162     @TADescriptions({
   163         @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
   164                 typeIndex = 0),
   165         @TADescription(annotation = "TB", type = CAST,
   166                 genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
   167                 typeIndex = 0)
   168     })
   169     public String eqtestPrimArray() {
   170         return "void eqtestPrimArray() { if (null == (@TB int @TA [])null); }";
   171     }
   173     @TADescriptions({
   174         @TADescription(annotation = "TA", type = CAST,
   175                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0),
   176         @TADescription(annotation = "TB", type = CAST,
   177                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1),
   178         @TADescription(annotation = "TC", type = CAST,
   179                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
   180                 genericLocation = {3, 0})
   181     })
   182     public String intersection1() {
   183         return "void intersection() { Object o = (@TA String & @TB Comparable<@TC String>) null; }";
   184     }
   186     @TADescriptions({
   187         @TADescription(annotation = "TA", type = CAST,
   188                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0),
   189         @TADescription(annotation = "TB", type = CAST,
   190                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1),
   191         @TADescription(annotation = "TC", type = CAST,
   192                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
   193                 genericLocation = {3, 0}),
   194         @TADescription(annotation = "TD", type = CAST,
   195                 offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 2),
   196     })
   197     public String intersection2() {
   198         return "void intersection() { Object o = (@TA String & @TB Comparable<@TC String> & @TD CharSequence) null; }";
   199     }
   200 }

mercurial