@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void _) { super.visitMemberReferenceExpression(node, _); if (node.getParent() instanceof AssignmentExpression && node.getRole() == AssignmentExpression.LEFT_ROLE) { return null; } final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference) { final Expression replacement = _replacements.get(member.getFullName()); if (replacement != null) { node.replaceWith(replacement.clone()); } } return null; } }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void _) { super.visitMemberReferenceExpression(node, _); if (node.getParent() instanceof AssignmentExpression && node.getRole() == AssignmentExpression.LEFT_ROLE) { return null; } final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference) { final Expression replacement = _replacements.get(member.getFullName()); if (replacement != null) { node.replaceWith(replacement.clone()); } } return null; } }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void p) { super.visitMemberReferenceExpression(node, p); if (node.getParent() instanceof AssignmentExpression && node.getRole() == AssignmentExpression.LEFT_ROLE) { return null; } final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference) { final Expression replacement = _replacements.get(member.getFullName()); if (replacement != null) { node.replaceWith(replacement.clone()); } } return null; } }
@Override public Void visitMethodDeclaration(final MethodDeclaration node, final Void _) { final MethodDefinition methodDefinition = node.getUserData(Keys.METHOD_DEFINITION); if (isSwitchMapMethod(methodDefinition)) { final Match m = SWITCH_TABLE_METHOD_BODY.match(node.getBody()); if (m.success()) { final MemberReferenceExpression fieldAccess = first(m.<MemberReferenceExpression>get("fieldAccess")); final FieldReference field = (FieldReference) fieldAccess.getUserData(Keys.MEMBER_REFERENCE); final List<MemberReferenceExpression> enumValues = toList(m.<MemberReferenceExpression>get("enumValue")); final List<PrimitiveExpression> tableValues = toList(m.<PrimitiveExpression>get("tableValue")); assert field != null && tableValues.size() == enumValues.size(); final String key = makeKey(field); SwitchMapInfo info = _switchMaps.get(key); if (info == null) { _switchMaps.put(key, info = new SwitchMapInfo(field)); } info.switchMapMethodDeclaration = node; for (int i = 0; i < enumValues.size(); i++) { final MemberReferenceExpression memberReference = enumValues.get(i); final IdentifierExpression identifier = new IdentifierExpression( Expression.MYSTERY_OFFSET, memberReference.getMemberName()); identifier.putUserData(Keys.MEMBER_REFERENCE, memberReference.getUserData(Keys.MEMBER_REFERENCE)); info.mappings.put((Integer) tableValues.get(i).getValue(), identifier); } } } return super.visitMethodDeclaration(node, _); }
@Override public Void visitMethodDeclaration(final MethodDeclaration node, final Void p) { final MethodDefinition methodDefinition = node.getUserData(Keys.METHOD_DEFINITION); if (isSwitchMapMethod(methodDefinition)) { final Match m = SWITCH_TABLE_METHOD_BODY.match(node.getBody()); if (m.success()) { final MemberReferenceExpression fieldAccess = first(m.<MemberReferenceExpression>get("fieldAccess")); final FieldReference field = (FieldReference) fieldAccess.getUserData(Keys.MEMBER_REFERENCE); final List<MemberReferenceExpression> enumValues = toList(m.<MemberReferenceExpression>get("enumValue")); final List<PrimitiveExpression> tableValues = toList(m.<PrimitiveExpression>get("tableValue")); assert field != null && tableValues.size() == enumValues.size(); final String key = makeKey(field); SwitchMapInfo info = _switchMaps.get(key); if (info == null) { _switchMaps.put(key, info = new SwitchMapInfo(field)); } info.switchMapMethodDeclaration = node; for (int i = 0; i < enumValues.size(); i++) { final MemberReferenceExpression memberReference = enumValues.get(i); final IdentifierExpression identifier = new IdentifierExpression( Expression.MYSTERY_OFFSET, memberReference.getMemberName()); identifier.putUserData(Keys.MEMBER_REFERENCE, memberReference.getUserData(Keys.MEMBER_REFERENCE)); info.mappings.put((Integer) tableValues.get(i).getValue(), identifier); } } } return super.visitMethodDeclaration(node, p); }
@Override public Void visitMethodDeclaration(final MethodDeclaration node, final Void _) { final MethodDefinition methodDefinition = node.getUserData(Keys.METHOD_DEFINITION); if (isSwitchMapMethod(methodDefinition)) { final Match m = SWITCH_TABLE_METHOD_BODY.match(node.getBody()); if (m.success()) { final MemberReferenceExpression fieldAccess = first(m.<MemberReferenceExpression>get("fieldAccess")); final FieldReference field = (FieldReference) fieldAccess.getUserData(Keys.MEMBER_REFERENCE); final List<MemberReferenceExpression> enumValues = toList(m.<MemberReferenceExpression>get("enumValue")); final List<PrimitiveExpression> tableValues = toList(m.<PrimitiveExpression>get("tableValue")); assert field != null && tableValues.size() == enumValues.size(); final String key = makeKey(field); SwitchMapInfo info = _switchMaps.get(key); if (info == null) { _switchMaps.put(key, info = new SwitchMapInfo(field)); } info.switchMapMethodDeclaration = node; for (int i = 0; i < enumValues.size(); i++) { final MemberReferenceExpression memberReference = enumValues.get(i); final IdentifierExpression identifier = new IdentifierExpression( Expression.MYSTERY_OFFSET, memberReference.getMemberName()); identifier.putUserData(Keys.MEMBER_REFERENCE, memberReference.getUserData(Keys.MEMBER_REFERENCE)); info.mappings.put((Integer) tableValues.get(i).getValue(), identifier); } } } return super.visitMethodDeclaration(node, _); }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { if (_simplifyMemberReferences) { final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference && context.getCurrentType() != null && MetadataHelper.isEnclosedBy(context.getCurrentType(), member.getDeclaringType())) { final Object resolvedObject = resolveName(node, member.getName(), NameResolveMode.EXPRESSION); if (resolvedObject instanceof FieldReference && MetadataHelper.isSameType(((FieldReference) resolvedObject).getDeclaringType(), member.getDeclaringType())) { _removeQualifierCandidates.add(node); } } } return super.visitMemberReferenceExpression(node, data); }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { if (_simplifyMemberReferences) { final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference && context.getCurrentType() != null && MetadataHelper.isEnclosedBy(context.getCurrentType(), member.getDeclaringType())) { final Object resolvedObject = resolveName(node, member.getName(), NameResolveMode.EXPRESSION); if (resolvedObject instanceof FieldReference && MetadataHelper.isSameType(((FieldReference) resolvedObject).getDeclaringType(), member.getDeclaringType())) { _removeQualifierCandidates.add(node); } } } return super.visitMemberReferenceExpression(node, data); }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { if (_simplifyMemberReferences) { final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference && context.getCurrentType() != null && MetadataHelper.isEnclosedBy(context.getCurrentType(), member.getDeclaringType())) { final Object resolvedObject = resolveName(node, member.getName(), NameResolveMode.EXPRESSION); if (resolvedObject instanceof FieldReference && MetadataHelper.isSameType(((FieldReference) resolvedObject).getDeclaringType(), member.getDeclaringType())) { _removeQualifierCandidates.add(node); } } } return super.visitMemberReferenceExpression(node, data); }
final MemberReferenceExpression memberReference = (MemberReferenceExpression) target; MemberReference reference = memberReference.getUserData(Keys.MEMBER_REFERENCE);
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { super.visitMemberReferenceExpression(node, data); if (isCurrentMemberVisible()) { MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() != null) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE); } if (member != null) { final IMemberDefinition resolvedMember; if (member instanceof FieldReference) { resolvedMember = ((FieldReference) member).resolve(); } else { resolvedMember = ((MethodReference) member).resolve(); } if (resolvedMember != null && resolvedMember.isSynthetic() && !Flags.testAny(resolvedMember.getFlags(), Flags.BRIDGE)) { context.getForcedVisibleMembers().add(resolvedMember); } } } return null; }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { super.visitMemberReferenceExpression(node, data); if (isCurrentMemberVisible()) { MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() != null) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE); } if (member != null) { final IMemberDefinition resolvedMember; if (member instanceof FieldReference) { resolvedMember = ((FieldReference) member).resolve(); } else { resolvedMember = ((MethodReference) member).resolve(); } if (resolvedMember != null && resolvedMember.isSynthetic() && !Flags.testAny(resolvedMember.getFlags(), Flags.BRIDGE)) { context.getForcedVisibleMembers().add(resolvedMember); } } } return null; }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { super.visitMemberReferenceExpression(node, data); if (isCurrentMemberVisible()) { MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() != null) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE); } if (member != null) { final IMemberDefinition resolvedMember; if (member instanceof FieldReference) { resolvedMember = ((FieldReference) member).resolve(); } else { resolvedMember = ((MethodReference) member).resolve(); } if (resolvedMember != null && resolvedMember.isSynthetic() && !Flags.testAny(resolvedMember.getFlags(), Flags.BRIDGE)) { context.getForcedVisibleMembers().add(resolvedMember); } } } return null; }
final MemberReferenceExpression memberReference = (MemberReferenceExpression) target; MemberReference reference = memberReference.getUserData(Keys.MEMBER_REFERENCE);
final MemberReferenceExpression memberReference = (MemberReferenceExpression) target; MemberReference reference = memberReference.getUserData(Keys.MEMBER_REFERENCE);
final MemberReference memberReference = reference.getUserData(Keys.MEMBER_REFERENCE);
final MemberReference memberReference = reference.getUserData(Keys.MEMBER_REFERENCE);
final MemberReference memberReference = reference.getUserData(Keys.MEMBER_REFERENCE);
MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE);
super.visitMemberReferenceExpression(node, data); MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE);