]> source.dussan.org Git - aspectj.git/commit
WildTypePattern: fix hashCode and toString methods
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Sun, 15 Jan 2023 00:16:24 +0000 (01:16 +0100)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sun, 15 Jan 2023 13:41:51 +0000 (14:41 +0100)
commitc9afd2ee1b1a701bffbe1d79f2a186b96c7e4f45
treeced1bea74802933b361f02c01ea98ebedc071048
parent9cf956c2838cbb4f5fd3ad46064e579df3752456
WildTypePattern: fix hashCode and toString methods

Especially 'hashCode' did not correspond to 'equals', disregarding
several fields, array dimension information being only one of them. This
led to parts of pointcuts being ignored, because they were regarded as
duplicates. Example:

execution(Foo* *(..)) && !execution(Foo*[] *(..))

Here, the negated pattern was falsely regarded as equal to the first
pattern, leading to an "A && !A" situation, i.e. no match at all.

Furthermore, 'toString' did not print array strings, i.e. instead of
"Foo*[][]" something like "Foo*" was printed. This false information was
also present in annotations generated by the weaver.

FuzzilyMatchingAspect was adjusted to actually match exactly once, as
expected, for the "Foo*" return types, i.e. exclusions for the array
return types have been added.

Relates to #24.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/WildTypePattern.java
tests/bugs1919/github_24/FuzzilyMatchingAspect.aj