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;
  }