public ResolvedMember getMatchingSyntheticMember(Member member, ResolvedType aspectType) { // ??? might give a field where a method is expected ResolvedType onType = aspectType.getWorld().resolve(getSignature().getDeclaringType()); if (onType.isRawType()) { onType = onType.getGenericType(); } ResolvedMember ret = AjcMemberMaker.interFieldGetDispatcher(getSignature(), aspectType); if (ResolvedType.matches(ret, member)) { return getSignature(); } ret = AjcMemberMaker.interFieldSetDispatcher(getSignature(), aspectType); if (ResolvedType.matches(ret, member)) { return getSignature(); } ret = AjcMemberMaker.interFieldInterfaceGetter(getSignature(), onType, aspectType); if (ResolvedType.matches(ret, member)) { return getSignature(); } ret = AjcMemberMaker.interFieldInterfaceSetter(getSignature(), onType, aspectType); if (ResolvedType.matches(ret, member)) { return getSignature(); } return super.getMatchingSyntheticMember(member, aspectType); }
gen.addMethodGen(mg); LazyMethodGen mg1 = makeMethodGen(gen, AjcMemberMaker.interFieldInterfaceSetter(field, onType, aspectType)); gen.addMethodGen(mg1); } else { ResolvedMember itdfieldSetter = AjcMemberMaker.interFieldInterfaceSetter(field, gen.getType(), aspectType); LazyMethodGen mg1 = makeMethodGen(gen, itdfieldSetter); InstructionList il1 = new InstructionList(); ResolvedMember bridgingSetter = AjcMemberMaker.interFieldInterfaceSetter(toBridgeTo, gen.getType(), aspectType); createBridgeMethodForITDF(weaver, gen, itdfieldSetter, bridgingSetter);