summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-07-20 16:18:21 +0000
committeracolyer <acolyer>2005-07-20 16:18:21 +0000
commit706bbcddb77409674424a7d35f60be79589dd536 (patch)
treeeb6988ec19b3d488eb617b143be00b6cbe4f64d3 /weaver
parent58bab9062a9cb2a3883ab49c16e800bb80c612f1 (diff)
downloadaspectj-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.java2
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java6
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);