PsiMember (final MemberInfo member) { PsiMember cause = myMember2CauseMap.get(member); if (cause != null) return cause; final BackpointerUsageVisitor visitor; if (member.isChecked()) { visitor = new BackpointerUsageVisitor(getFieldsToExtract(), getClassesToExtract(), getMethodsToExtract(), sourceClass); } else { visitor = new BackpointerUsageVisitor(getMembersToExtract(false, PsiField.class), getMembersToExtract(false, PsiClass.class), getMembersToExtract(false, PsiMethod.class), sourceClass, false); } member.getMember().accept(visitor); cause = visitor.getCause(); myMember2CauseMap.put(member, cause); return cause; }