aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2023-01-17 16:02:03 +0100
committerAlexander Kriegisch <Alexander@Kriegisch.name>2024-04-12 15:32:39 +0200
commitcad9346701b4ef3884283886948b0c2504e00e17 (patch)
tree9f60a07e173f48d83e8ccbb7c918f6d80720a59c
parent2a1ec081e1958afa47a884cad4766e6ca88571aa (diff)
downloadaspectj-cad9346701b4ef3884283886948b0c2504e00e17.tar.gz
aspectj-cad9346701b4ef3884283886948b0c2504e00e17.zip
UnresolvedType.signatureToName: fix '*' case for generic type '?'
In generic type lists, after a '*' in any type parameter list, sometimes the '*' (which should be converted to '?') itself and always the subsequent parameters would be missing from the signature: - '[Pjava/util/Collection<*>;' yielded 'java.util.Collection<>[]', but should be 'java.util.Collection<?>[]' - '[Pjava/util/Map<*Pjava/util/List<[Ljava/lang/Integer;>;>;' yielded 'java.util.Map<?>[]', but should be 'java.util.Map<?,java.util.List<java.lang.Integer[]>>[]' This is now fixed. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
-rw-r--r--org.aspectj.matcher/src/main/java/org/aspectj/weaver/UnresolvedType.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/UnresolvedType.java b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/UnresolvedType.java
index 37780023c..e911ba44f 100644
--- a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/UnresolvedType.java
+++ b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/UnresolvedType.java
@@ -676,7 +676,7 @@ public class UnresolvedType implements Traceable, TypeVariableDeclaringElement {
if (paramNestLevel > 0) {
innerBuff.append(c);
}
- if (c == ';' && paramNestLevel == 1) {
+ if ((c == ';' || c == '*') && paramNestLevel == 1) {
nameBuff.append(signatureToName(innerBuff.toString()));
if (signature.charAt(i + 1) != '>') {
nameBuff.append(',');