diff options
author | aclement <aclement> | 2008-06-08 21:36:27 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-06-08 21:36:27 +0000 |
commit | 81ff93b04f951758de1a959a55d486fbe8fe410f (patch) | |
tree | 97a836a1cc6b5ebae449333502fbcfb99393da0f /weaver | |
parent | 6e58dcb6f78564de40a82f8ccbaf44b24da9db45 (diff) | |
download | aspectj-81ff93b04f951758de1a959a55d486fbe8fe410f.tar.gz aspectj-81ff93b04f951758de1a959a55d486fbe8fe410f.zip |
test and fix for 226201 - convert return type of generic advice to parameterized type
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelShadow.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java index 4cb961bc2..008d14119 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java @@ -3035,10 +3035,18 @@ public class BcelShadow extends Shadow { stateRTX); } } else { + // pr226201 + Member mungerSignature = munger.getSignature(); + if (munger.getSignature() instanceof ResolvedMember) { + if (((ResolvedMember)mungerSignature).hasBackingGenericMember()) { + mungerSignature = ((ResolvedMember)mungerSignature).getBackingGenericMember(); + } + } + UnresolvedType returnType = mungerSignature.getReturnType(); returnConversionCode = Utility.createConversion( getFactory(), - BcelWorld.makeBcelType(munger.getSignature().getReturnType()), + BcelWorld.makeBcelType(returnType), callbackMethod.getReturnType(),world.isInJava5Mode()); if (!isFallsThrough()) { returnConversionCode.append( |