private PsiExpression replaceRefsToTargetVariable(final PsiExpression expression) { final PsiManager manager = expression.getManager(); if (expression instanceof PsiReferenceExpression && ((PsiReferenceExpression) expression).isReferenceTo(myTargetVariable)) { return createThisExpr(manager); } expression.accept( new JavaRecursiveElementVisitor() { @Override public void visitReferenceExpression(PsiReferenceExpression expression) { super.visitReferenceExpression(expression); if (expression.isReferenceTo(myTargetVariable)) { try { expression.replace(createThisExpr(manager)); } catch (IncorrectOperationException e) { LOG.error(e); } } } }); return expression; }