diff options
author | acolyer <acolyer> | 2005-07-13 13:04:03 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-07-13 13:04:03 +0000 |
commit | d9e3ba17c87310d66f0cf796e15f58413afb34f7 (patch) | |
tree | 303f643ff1dd78b82ca88b2345ebdb24e3fbd765 | |
parent | d3a1396362fef8107a5e3529530bc523c1c15903 (diff) | |
download | aspectj-d9e3ba17c87310d66f0cf796e15f58413afb34f7.tar.gz aspectj-d9e3ba17c87310d66f0cf796e15f58413afb34f7.zip |
avoid losing type variable information when resolving bindings
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java b/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java index 436103277..8f67b4466 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java @@ -519,8 +519,12 @@ public class WildTypePattern extends TypePattern { // Only if the type is exact *and* the type parameters are exact should we create an // ExactTypePattern for this WildTypePattern if (typeParameters.areAllExact()) { - String[] typeParamCleanNames = typeParameters.maybeGetCleanNames(); - TypeX tx = TypeX.forParameterizedTypeNames(rawType.getName(),typeParamCleanNames); + TypePattern[] typePats = typeParameters.getTypePatterns(); + TypeX[] typeParameterTypes = new TypeX[typePats.length]; + for (int i = 0; i < typeParameterTypes.length; i++) { + typeParameterTypes[i] = ((ExactTypePattern)typePats[i]).getExactType(); + } + TypeX tx = TypeX.forParameterizedTypes(rawType,typeParameterTypes); TypeX type = scope.getWorld().resolve(tx,true); if (dim != 0) type = TypeX.makeArray(type, dim); ret = new ExactTypePattern(type,includeSubtypes,isVarArgs); |