summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoracolyer <acolyer>2006-02-03 11:00:46 +0000
committeracolyer <acolyer>2006-02-03 11:00:46 +0000
commitf856b9d877b394ff0b8b9920b18f36aae26ad23b (patch)
tree908190b6a2252a2c14188c49e7c6f30617d51cef /weaver
parent03bb056c7decd47d5b53081e7d91b389b18835e9 (diff)
downloadaspectj-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')
-rw-r--r--weaver/src/org/aspectj/weaver/BoundedReferenceType.java4
-rw-r--r--weaver/src/org/aspectj/weaver/ReferenceType.java4
-rw-r--r--weaver/src/org/aspectj/weaver/TypeVariableReferenceType.java4
-rw-r--r--weaver/src/org/aspectj/weaver/World.java2
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;
}