protected void performActionOnElementOccurrences(final IntroduceOperation operation) {
   final Editor editor = operation.getEditor();
   if (editor.getSettings().isVariableInplaceRenameEnabled()) {
     ensureName(operation);
     if (operation.isReplaceAll() != null) {
       performInplaceIntroduce(operation);
     } else {
       OccurrencesChooser.simpleChooser(editor)
           .showChooser(
               operation.getElement(),
               operation.getOccurrences(),
               new Pass<OccurrencesChooser.ReplaceChoice>() {
                 @Override
                 public void pass(OccurrencesChooser.ReplaceChoice replaceChoice) {
                   operation.setReplaceAll(replaceChoice == OccurrencesChooser.ReplaceChoice.ALL);
                   performInplaceIntroduce(operation);
                 }
               });
     }
   } else {
     performIntroduceWithDialog(operation);
   }
 }
  private void performActionOnElement(IntroduceOperation operation) {
    if (!checkEnabled(operation)) {
      return;
    }
    final PsiElement element = operation.getElement();

    final PsiElement parent = element.getParent();
    final PyExpression initializer =
        parent instanceof PyAssignmentStatement
            ? ((PyAssignmentStatement) parent).getAssignedValue()
            : (PyExpression) element;
    operation.setInitializer(initializer);

    if (initializer != null) {
      operation.setOccurrences(getOccurrences(element, initializer));
      operation.setSuggestedNames(getSuggestedNames(initializer));
    }
    if (operation.getOccurrences().size() == 0) {
      operation.setReplaceAll(false);
    }

    performActionOnElementOccurrences(operation);
  }