diff options
author | aclement <aclement> | 2005-11-08 12:13:05 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-11-08 12:13:05 +0000 |
commit | d9757d7c41bf2661455422ce3234e4794c9f533e (patch) | |
tree | ba4352377521fb1e27930948371577505b5a6d71 /weaver | |
parent | 9905334cb7e47e8c0fc78d624e0f8c06cd79baee (diff) | |
download | aspectj-d9757d7c41bf2661455422ce3234e4794c9f533e.tar.gz aspectj-d9757d7c41bf2661455422ce3234e4794c9f533e.zip |
testcode and fix for pr114005: copying annotations to ITDfs on interfaces.
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java index 464f1e65a..0bc377fd4 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java @@ -1473,12 +1473,22 @@ public class BcelTypeMunger extends ConcreteTypeMunger { Type fieldType = BcelWorld.makeBcelType(field.getType()); FieldGen fg = makeFieldGen(gen,AjcMemberMaker.interFieldInterfaceField(field, onType, aspectType)); - gen.addField(fg.getField(),getSourceLocation()); + + if (annotationsOnRealMember!=null) { + for (int i = 0; i < annotationsOnRealMember.length; i++) { + AnnotationX annotationX = annotationsOnRealMember[i]; + Annotation a = annotationX.getBcelAnnotation(); + AnnotationGen ag = new AnnotationGen(a,weaver.getLazyClassGen().getConstantPoolGen(),true); + fg.addAnnotation(ag); + } + } + + gen.addField(fg.getField(),getSourceLocation()); //this uses a shadow munger to add init method to constructors //weaver.getShadowMungers().add(makeInitCallShadowMunger(initMethod)); - - ResolvedMember itdfieldGetter = AjcMemberMaker.interFieldInterfaceGetter(field, gen.getType()/*onType*/, aspectType); + + ResolvedMember itdfieldGetter = AjcMemberMaker.interFieldInterfaceGetter(field, gen.getType()/*onType*/, aspectType); LazyMethodGen mg = makeMethodGen(gen, itdfieldGetter); InstructionList il = new InstructionList(); InstructionFactory fact = gen.getFactory(); |