@Override
 protected PsiElement replaceExpression(
     PsiElement expression, PyExpression newExpression, IntroduceOperation operation) {
   if (operation.getInitPlace() != InitPlace.SAME_METHOD) {
     return PyReplaceExpressionUtil.replaceExpression(expression, newExpression);
   }
   return super.replaceExpression(expression, newExpression, operation);
 }
 @Nullable
 @Override
 protected PsiElement addDeclaration(
     @NotNull PsiElement expression,
     @NotNull PsiElement declaration,
     @NotNull IntroduceOperation operation) {
   final PsiElement expr = expression instanceof PyClass ? expression : expression.getParent();
   PsiElement anchor = PyUtil.getContainingClassOrSelf(expr);
   assert anchor instanceof PyClass;
   final PyClass clazz = (PyClass) anchor;
   final Project project = anchor.getProject();
   if (operation.getInitPlace() == InitPlace.CONSTRUCTOR && !inConstructor(expression)) {
     return AddFieldQuickFix.addFieldToInit(
         project, clazz, "", new AddFieldDeclaration(declaration));
   } else if (operation.getInitPlace() == InitPlace.SET_UP) {
     return addFieldToSetUp(clazz, new AddFieldDeclaration(declaration));
   }
   return PyIntroduceVariableHandler.doIntroduceVariable(
       expression, declaration, operation.getOccurrences(), operation.isReplaceAll());
 }