From: aclement Date: Tue, 14 Oct 2008 22:54:28 +0000 (+0000) Subject: 250632: fix (poor code tho...) X-Git-Tag: PRE_251277~11 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a0cb79d556316e0b25c57916582ac6fa64ddadf9;p=aspectj.git 250632: fix (poor code tho...) --- diff --git a/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java b/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java index 92a1f2de3..2bdd41697 100644 --- a/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java +++ b/weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java @@ -814,11 +814,24 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno // The component type might be a type variable (pr150095) int dims = 1; String sig = aType.getSignature(); - while (sig.charAt(dims) == '[') - dims++; + // while (sig.charAt(dims) == '[') + // dims++; + UnresolvedType arrayType = null; UnresolvedType componentSig = UnresolvedType.forSignature(sig.substring(dims)); - UnresolvedType arrayType = ResolvedType.makeArray(parameterize(componentSig, typeVariableMap, inParameterizedType), - dims); + UnresolvedType parameterizedComponentSig = parameterize(componentSig, typeVariableMap, inParameterizedType); + if (parameterizedComponentSig.isTypeVariableReference() + && parameterizedComponentSig instanceof UnresolvedTypeVariableReferenceType + && typeVariableMap.containsKey(((UnresolvedTypeVariableReferenceType) parameterizedComponentSig) + .getTypeVariable().getName())) { // pr250632 + // TODO ASC bah, this code is rubbish - i should fix it properly + StringBuffer newsig = new StringBuffer(); + newsig.append("[T"); + newsig.append(((UnresolvedTypeVariableReferenceType) parameterizedComponentSig).getTypeVariable().getName()); + newsig.append(";"); + arrayType = UnresolvedType.forSignature(newsig.toString()); + } else { + arrayType = ResolvedType.makeArray(parameterizedComponentSig, dims); + } return arrayType; } return aType;