From 73e86eb9dc6825e8d8bade57a04e0e5289d78f8a Mon Sep 17 00:00:00 2001 From: Alexander Kriegisch Date: Wed, 23 Aug 2023 09:33:21 +0700 Subject: [PATCH] NotTypePattern: Fix matching problem for negated type patterns The implementation for boolean matchesArray(UnresolvedType type) was buggy. '!String' should match anything but String, no matter if it is an array or not, e.g. int, void, int[], String[], String[][]. '!String[]' should match anything but String[], no matter if it is an array or not, e.g. int, void, int[], String, String[][]. Fixes #257. Signed-off-by: Alexander Kriegisch --- .../java/org/aspectj/weaver/patterns/NotTypePattern.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotTypePattern.java b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotTypePattern.java index d8c4f3bd4..6360c7a72 100644 --- a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotTypePattern.java +++ b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotTypePattern.java @@ -70,7 +70,12 @@ public class NotTypePattern extends TypePattern { @Override protected boolean matchesArray(UnresolvedType type) { - return !negatedPattern.matchesArray(type); + // '!String' should match anything but String, no matter if it is an array or not, + // e.g. int, void, int[], String[], String[][]. + // + // '!String[]' should match anything but String[], no matter if it is an array or not, + // e.g. int, void, int[], String, String[][]. + return true; } @Override -- 2.39.5