diff options
author | acolyer <acolyer> | 2006-02-03 11:00:46 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2006-02-03 11:00:46 +0000 |
commit | f856b9d877b394ff0b8b9920b18f36aae26ad23b (patch) | |
tree | 908190b6a2252a2c14188c49e7c6f30617d51cef /weaver | |
parent | 03bb056c7decd47d5b53081e7d91b389b18835e9 (diff) | |
download | aspectj-f856b9d877b394ff0b8b9920b18f36aae26ad23b.tar.gz aspectj-f856b9d877b394ff0b8b9920b18f36aae26ad23b.zip |
Progress on: Bug 126316: Invalid method signature: Pjava/lang/Enum<Ljava/lang/Object;>;
https://bugs.eclipse.org/bugs/show_bug.cgi?id=126316
--> fix and test case
Diffstat (limited to 'weaver')
4 files changed, 10 insertions, 4 deletions
diff --git a/weaver/src/org/aspectj/weaver/BoundedReferenceType.java b/weaver/src/org/aspectj/weaver/BoundedReferenceType.java index 28d2e80d9..2d0016d63 100644 --- a/weaver/src/org/aspectj/weaver/BoundedReferenceType.java +++ b/weaver/src/org/aspectj/weaver/BoundedReferenceType.java @@ -57,8 +57,8 @@ public class BoundedReferenceType extends ReferenceType { /** * only for use when resolving GenericsWildcardTypeX or a TypeVariableReferenceType */ - protected BoundedReferenceType(String sig, World world) { - super(sig,world); + protected BoundedReferenceType(String sig, String sigErasure, World world) { + super(sig, sigErasure, world); setUpperBound(world.resolve(UnresolvedType.OBJECT)); setDelegate(new ReferenceTypeReferenceTypeDelegate((ReferenceType)getUpperBound())); } diff --git a/weaver/src/org/aspectj/weaver/ReferenceType.java b/weaver/src/org/aspectj/weaver/ReferenceType.java index 1e6648f7d..82d640476 100644 --- a/weaver/src/org/aspectj/weaver/ReferenceType.java +++ b/weaver/src/org/aspectj/weaver/ReferenceType.java @@ -70,6 +70,10 @@ public class ReferenceType extends ResolvedType { public ReferenceType(String signature, World world) { super(signature, world); } + + public ReferenceType(String signature, String signatureErasure, World world) { + super(signature,signatureErasure, world); + } /** * Constructor used when creating a parameterized type. diff --git a/weaver/src/org/aspectj/weaver/TypeVariableReferenceType.java b/weaver/src/org/aspectj/weaver/TypeVariableReferenceType.java index b12bb7262..e35ff5c86 100644 --- a/weaver/src/org/aspectj/weaver/TypeVariableReferenceType.java +++ b/weaver/src/org/aspectj/weaver/TypeVariableReferenceType.java @@ -31,7 +31,9 @@ public class TypeVariableReferenceType extends BoundedReferenceType implements T public TypeVariableReferenceType( TypeVariable aTypeVariable, World aWorld) { - super(aTypeVariable.getFirstBound().getSignature(),aWorld); + super(aTypeVariable.getFirstBound().getSignature(), + aTypeVariable.getFirstBound().getErasureSignature(), + aWorld); this.typeVariable = aTypeVariable; this.isExtends = false; this.isSuper = false; diff --git a/weaver/src/org/aspectj/weaver/World.java b/weaver/src/org/aspectj/weaver/World.java index c470a0ec6..03ff28c3b 100644 --- a/weaver/src/org/aspectj/weaver/World.java +++ b/weaver/src/org/aspectj/weaver/World.java @@ -209,7 +209,7 @@ public abstract class World implements Dump.INode { // might be a problem here, not sure '?' should make it to here as a signature, the // proper signature for wildcard '?' is '*' // fault in generic wildcard, can't be done earlier because of init issues - ResolvedType something = new BoundedReferenceType("?",this); + ResolvedType something = new BoundedReferenceType("?","Ljava/lang/Object",this); typeMap.put("?",something); return something; } |