public ResolvedMember getBackingGenericMember() { return realMember.getBackingGenericMember(); }
@Override public Member getOriginalSignature() { Member sig = getSignature(); if (sig instanceof ResolvedMember) { ResolvedMember rsig = (ResolvedMember) sig; if (rsig.hasBackingGenericMember()) { return rsig.getBackingGenericMember(); } } return sig; }
/** * described in JVM spec 2ed 5.4.3.2 */ public ResolvedMember lookupField(Member field) { Iterator<ResolvedMember> i = getFields(); while (i.hasNext()) { ResolvedMember resolvedMember = i.next(); if (matches(resolvedMember, field)) { return resolvedMember; } if (resolvedMember.hasBackingGenericMember() && field.getName().equals(resolvedMember.getName())) { // might be worth checking the member behind the parameterized member (see pr137496) if (matches(resolvedMember.getBackingGenericMember(), field)) { return resolvedMember; } } } return null; }
if (matches(method.getBackingGenericMember(), m)) { return method;
if (eraseGenerics) { if (candidate.hasBackingGenericMember()) { candidate = candidate.getBackingGenericMember();
&& targetMethod.getBackingGenericMember().getParameterSignature().equals(newParentMethodSig)) { discoveredImpl = targetMethod; } else if (newParentMethod.hasBackingGenericMember()) { if (newParentMethod.getBackingGenericMember().getParameterSignature().equals(targetMethodSignature)) { // newParentMethod.getBackingGenericMember().getParameterSignature gives: (Pjava/util/List<TI;>;) targetMethodSignature= (Ljava/util/List;) discoveredImpl = targetMethod; } else if (targetMethod instanceof BcelMethod) {
hasAtLeastOneMethod = true; if (method.hasBackingGenericMember()) { method = method.getBackingGenericMember();
return methodThatMightBeGettingOverridden.getBackingGenericMember(); } else if (!methodThatMightBeGettingOverridden.getReturnType().getErasureSignature().equals(mrettype)) {
public void addPrivilegedAccesses(Collection<ResolvedMember> accessedMembers) { int version = inAspect.getCompilerVersion(); for (ResolvedMember member : accessedMembers) { // Looking it up ensures we get the annotations - the accessedMembers are just retrieved from the attribute and // don't have that information ResolvedMember resolvedMember = world.resolve(member); // pr333469 // If the member is for an ITD (e.g. serialVersionUID) then during resolution we may resolve it on // a supertype because it doesn't yet exist on the target. // For example: MyList extends ArrayList<String> and the ITD is on MyList - after resolution it may be: // ArrayList<String>.serialVersionUID, we need to avoid that happening if (resolvedMember == null) { // can happen for ITDs - are there many privileged access ITDs?? resolvedMember = member; if (resolvedMember.hasBackingGenericMember()) { resolvedMember = resolvedMember.getBackingGenericMember(); } } else { UnresolvedType unresolvedDeclaringType = member.getDeclaringType().getRawType(); UnresolvedType resolvedDeclaringType = resolvedMember.getDeclaringType().getRawType(); if (!unresolvedDeclaringType.equals(resolvedDeclaringType)) { resolvedMember = member; } } PrivilegedAccessMunger privilegedAccessMunger = new PrivilegedAccessMunger(resolvedMember, version >= WeaverVersionInfo.WEAVER_VERSION_AJ169); ConcreteTypeMunger concreteTypeMunger = world.getWeavingSupport().concreteTypeMunger(privilegedAccessMunger, inAspect); addTypeMunger(concreteTypeMunger); } }
ResolvedMember rm = (ResolvedMember) mungerSig; if (rm.hasBackingGenericMember()) { mungerSig = rm.getBackingGenericMember();
if (munger.getSignature() instanceof ResolvedMember) { if (((ResolvedMember) mungerSignature).hasBackingGenericMember()) { mungerSignature = ((ResolvedMember) mungerSignature).getBackingGenericMember();