diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-01-17 16:02:03 +0100 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2024-04-12 15:32:39 +0200 |
commit | cad9346701b4ef3884283886948b0c2504e00e17 (patch) | |
tree | 9f60a07e173f48d83e8ccbb7c918f6d80720a59c | |
parent | 2a1ec081e1958afa47a884cad4766e6ca88571aa (diff) | |
download | aspectj-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.java | 2 |
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(','); |