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

changeset 1755
ddb4a2bfcd82
parent 1534
bec996065c45
child 2525
2eb010b6cb22
     1.1 --- a/test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java	Tue May 14 13:55:35 2013 -0700
     1.2 +++ b/test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java	Tue May 14 15:04:06 2013 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -28,6 +28,7 @@
    1.11  
    1.12  import com.sun.tools.classfile.Attribute;
    1.13  import com.sun.tools.classfile.ClassFile;
    1.14 +import com.sun.tools.classfile.Code_attribute;
    1.15  import com.sun.tools.classfile.TypeAnnotation;
    1.16  import com.sun.tools.classfile.Field;
    1.17  import com.sun.tools.classfile.Method;
    1.18 @@ -90,6 +91,20 @@
    1.19              RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr;
    1.20              annos.addAll(Arrays.asList(tAttr.annotations));
    1.21          }
    1.22 +
    1.23 +        int cindex = m.attributes.getIndex(cf.constant_pool, Attribute.Code);
    1.24 +        if (cindex != -1) {
    1.25 +            Attribute cattr = m.attributes.get(cindex);
    1.26 +            assert cattr instanceof Code_attribute;
    1.27 +            Code_attribute cAttr = (Code_attribute)cattr;
    1.28 +            index = cAttr.attributes.getIndex(cf.constant_pool, name);
    1.29 +            if (index != -1) {
    1.30 +                Attribute attr = cAttr.attributes.get(index);
    1.31 +                assert attr instanceof RuntimeTypeAnnotations_attribute;
    1.32 +                RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr;
    1.33 +                annos.addAll(Arrays.asList(tAttr.annotations));
    1.34 +            }
    1.35 +        }
    1.36      }
    1.37  
    1.38      // test the result of Attributes.getIndex according to expectations

mercurial