From: aclement Date: Tue, 13 Apr 2010 20:19:32 +0000 (+0000) Subject: 308773 X-Git-Tag: V1_6_9M1~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=49da1e2edb3fa396405620a9930f33b14d7045a1;p=aspectj.git 308773 --- diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedMemberImpl.java b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedMemberImpl.java index fc623d7dc..3890488d0 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedMemberImpl.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedMemberImpl.java @@ -671,8 +671,13 @@ public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, Anno */ public ResolvedMemberImpl parameterizedWith(UnresolvedType[] typeParameters, ResolvedType newDeclaringType, boolean isParameterized, List aliases) { + // PR308773 + // this check had problems for the inner type of a generic type because the inner type can be represented + // by a 'simple type' if it is only sharing type variables with the outer and has none of its own. To avoid the + // check going bang in this case we check for $ (crap...) - we can't check the outer because the declaring type + // is considered unresolved... if (// isParameterized && <-- might need this bit... - !getDeclaringType().isGenericType()) { + !getDeclaringType().isGenericType() && getDeclaringType().getName().indexOf("$")==-1) { throw new IllegalStateException("Can't ask to parameterize a member of non-generic type: " + getDeclaringType() + " kind(" + getDeclaringType().typeKind + ")"); }