diff options
author | acolyer <acolyer> | 2005-07-20 16:18:21 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-07-20 16:18:21 +0000 |
commit | 706bbcddb77409674424a7d35f60be79589dd536 (patch) | |
tree | eb6988ec19b3d488eb617b143be00b6cbe4f64d3 /weaver | |
parent | 58bab9062a9cb2a3883ab49c16e800bb80c612f1 (diff) | |
download | aspectj-706bbcddb77409674424a7d35f60be79589dd536.tar.gz aspectj-706bbcddb77409674424a7d35f60be79589dd536.zip |
wild type patterns with no type params ignore <...> when matching by name (raw match)
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/TypePattern.java | 2 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/TypePattern.java b/weaver/src/org/aspectj/weaver/patterns/TypePattern.java index 6c66da2db..216dafb53 100644 --- a/weaver/src/org/aspectj/weaver/patterns/TypePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/TypePattern.java @@ -213,7 +213,7 @@ public abstract class TypePattern extends PatternNode { for (Iterator i = type.getDirectSupertypes(); i.hasNext(); ) { ResolvedType superType = (ResolvedType)i.next(); // TODO asc generics, temporary whilst matching isnt aware.. - if (superType.isParameterizedType()) superType = superType.getRawType().resolve(superType.getWorld()); + //if (superType.isParameterizedType()) superType = superType.getRawType().resolve(superType.getWorld()); if (matchesSubtypes(superType,type)) return true; } return false; diff --git a/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java b/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java index ee9198b5a..0d43a4797 100644 --- a/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java @@ -182,6 +182,12 @@ public class WildTypePattern extends TypePattern { * @return */ private boolean matchesExactlyByName(String targetTypeName) { + if (typeParameters == TypePatternList.EMPTY) { + // we can ignore anything after an < as we want raw matching + if (targetTypeName.indexOf('<') != -1) { + targetTypeName = targetTypeName.substring(0,targetTypeName.indexOf('<')); + } + } //XXX hack if (knownMatches == null && importedPrefixes == null) { return innerMatchesExactly(targetTypeName); |