From 706bbcddb77409674424a7d35f60be79589dd536 Mon Sep 17 00:00:00 2001 From: acolyer Date: Wed, 20 Jul 2005 16:18:21 +0000 Subject: [PATCH] wild type patterns with no type params ignore <...> when matching by name (raw match) --- weaver/src/org/aspectj/weaver/patterns/TypePattern.java | 2 +- weaver/src/org/aspectj/weaver/patterns/WildTypePattern.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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); -- 2.39.5