void (@NotNull PsiReferenceExpression expression) { super.visitReferenceExpression(expression); final PsiElement referenceNameElement = expression.getReferenceNameElement(); if (referenceNameElement == null) { return; } final JavaResolveResult resolveResult = expression.advancedResolve(false); if (!resolveResult.isAccessible()) { return; } final PsiElement element = resolveResult.getElement(); if (!(element instanceof PsiMethod || element instanceof PsiField)) { return; } final PsiMember member = (PsiMember)element; if (!member.hasModifierProperty(PsiModifier.PRIVATE)) { return; } final Object value = ExpressionUtils.computeConstantExpression(expression); if (value != null) { return; // no synthetic accessor created, compile time constant will be inlined by javac } final PsiClass memberClass = member.getContainingClass(); if (!isInnerClassAccess(expression, memberClass)) { return; } registerError(referenceNameElement, memberClass, member); }