aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2008-06-08 21:36:27 +0000
committeraclement <aclement>2008-06-08 21:36:27 +0000
commit81ff93b04f951758de1a959a55d486fbe8fe410f (patch)
tree97a836a1cc6b5ebae449333502fbcfb99393da0f /weaver
parent6e58dcb6f78564de40a82f8ccbaf44b24da9db45 (diff)
downloadaspectj-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.java10
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(