void (final @NotNull PsiReferenceExpression expression) { super.visitReferenceExpression(expression); final PsiElement element = expression.resolve(); if (element instanceof PsiMember && !((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC)) { if (myMethod.hasModifierProperty(PsiModifier.STATIC)) { myConflicts.putValue(expression, JavaRefactoringBundle.message("inline.parameter.dependency.unavailable.in.static.method", RefactoringUIUtil.getDescription(element, false))); } } if (element instanceof PsiMethod || element instanceof PsiField) { if (!mySameClass && !((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC)) { myConflicts.putValue(expression, JavaRefactoringBundle.message("inline.parameter.depends.on.non.static")); } else if (!PsiUtil.isAccessible((PsiMember)element, myMethod, null)) { myConflicts.putValue(expression, JavaRefactoringBundle.message("inline.parameter.depends.on.unavailable.value")); } } else if (element instanceof PsiParameter && PsiTreeUtil.isAncestor(((PsiParameter)element).getDeclarationScope(), myInitializer, true)) { boolean bound = false; for (PsiParameter parameter : myMethod.getParameterList().getParameters()) { if (parameter.getType().equals(((PsiParameter)element).getType()) && parameter.getName().equals(((PsiParameter)element).getName())) { bound = true; break; } } if (!bound) { myConflicts.putValue(expression, JavaRefactoringBundle.message("inline.parameter.depends.on.caller.parameter")); } } }