Browse Source

332388: test and fix

tags/V1_6_11RC1
aclement 13 years ago
parent
commit
bd5cd17934

+ 15
- 2
weaver/src/org/aspectj/weaver/bcel/BcelGenericSignatureToTypeXConverter.java View File

@@ -14,6 +14,7 @@ package org.aspectj.weaver.bcel;
import java.util.HashMap;
import java.util.Map;

import org.aspectj.bridge.Message;
import org.aspectj.util.GenericSignature;
import org.aspectj.util.GenericSignature.SimpleClassTypeSignature;
import org.aspectj.weaver.BoundedReferenceType;
@@ -161,12 +162,24 @@ public class BcelGenericSignatureToTypeXConverter {
if (aTypeArgument.isMinus) {
UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world,
inProgressTypeVariableResolutions);
ReferenceType rBound = (ReferenceType) world.resolve(bound);
ResolvedType resolvedBound = world.resolve(bound);
if (resolvedBound.isMissing()) {
world.getMessageHandler().handleMessage(
new Message("Unable to find type (for bound): " + resolvedBound.getName(), null, true));
resolvedBound = world.resolve(UnresolvedType.OBJECT);
}
ReferenceType rBound = (ReferenceType) resolvedBound;
return new BoundedReferenceType(rBound, false, world);
} else if (aTypeArgument.isPlus) {
UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world,
inProgressTypeVariableResolutions);
ReferenceType rBound = (ReferenceType) world.resolve(bound);
ResolvedType resolvedBound = world.resolve(bound);
if (resolvedBound.isMissing()) {
world.getMessageHandler().handleMessage(
new Message("Unable to find type (for bound): " + resolvedBound.getName(), null, true));
resolvedBound = world.resolve(UnresolvedType.OBJECT);
}
ReferenceType rBound = (ReferenceType) resolvedBound;
return new BoundedReferenceType(rBound, true, world);
} else {
return fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world, inProgressTypeVariableResolutions);

Loading…
Cancel
Save