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

import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;


import org.aspectj.bridge.Message;
import org.aspectj.util.GenericSignature; import org.aspectj.util.GenericSignature;
import org.aspectj.util.GenericSignature.SimpleClassTypeSignature; import org.aspectj.util.GenericSignature.SimpleClassTypeSignature;
import org.aspectj.weaver.BoundedReferenceType; import org.aspectj.weaver.BoundedReferenceType;
if (aTypeArgument.isMinus) { if (aTypeArgument.isMinus) {
UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world, UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world,
inProgressTypeVariableResolutions); 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); return new BoundedReferenceType(rBound, false, world);
} else if (aTypeArgument.isPlus) { } else if (aTypeArgument.isPlus) {
UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world, UnresolvedType bound = fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world,
inProgressTypeVariableResolutions); 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); return new BoundedReferenceType(rBound, true, world);
} else { } else {
return fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world, inProgressTypeVariableResolutions); return fieldTypeSignature2TypeX(aTypeArgument.signature, typeParams, world, inProgressTypeVariableResolutions);

Loading…
Cancel
Save