src/share/classes/com/sun/tools/javac/comp/Lower.java

changeset 2134
b0c086cd4520
parent 2098
0be3f1820e8b
child 2183
75c8cde12ab6
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Lower.java	Tue Oct 15 22:15:35 2013 +0200
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Lower.java	Tue Oct 15 15:57:13 2013 -0700
     1.3 @@ -2834,20 +2834,9 @@
     1.4          tree.underlyingType = translate(tree.underlyingType);
     1.5          // but maintain type annotations in the type.
     1.6          if (tree.type.isAnnotated()) {
     1.7 -            if (tree.underlyingType.type.isAnnotated()) {
     1.8 -                // The erasure of a type variable might be annotated.
     1.9 -                // Merge all annotations.
    1.10 -                AnnotatedType newat = (AnnotatedType) tree.underlyingType.type;
    1.11 -                AnnotatedType at = (AnnotatedType) tree.type;
    1.12 -                at.underlyingType = newat.underlyingType;
    1.13 -                newat.typeAnnotations = at.typeAnnotations.appendList(newat.typeAnnotations);
    1.14 -                tree.type = newat;
    1.15 -            } else {
    1.16 -                // Create a new AnnotatedType to have the correct tag.
    1.17 -                AnnotatedType oldat = (AnnotatedType) tree.type;
    1.18 -                tree.type = new AnnotatedType(tree.underlyingType.type);
    1.19 -                ((AnnotatedType) tree.type).typeAnnotations = oldat.typeAnnotations;
    1.20 -            }
    1.21 +            tree.type = tree.underlyingType.type.unannotatedType().annotatedType(tree.type.getAnnotationMirrors());
    1.22 +        } else if (tree.underlyingType.type.isAnnotated()) {
    1.23 +            tree.type = tree.underlyingType.type;
    1.24          }
    1.25          result = tree;
    1.26      }

mercurial