@Override
    void collapse(@NotNull PsiElement anchor) {
      PsiExpressionStatement statement = tryCast(anchor, PsiExpressionStatement.class);
      if (statement == null) return;
      PsiAssignmentExpression assignment = tryCast(statement.getExpression(), PsiAssignmentExpression.class);
      if (assignment == null) return;
      if (myField.hasInitializer()) return;
      PsiExpression lExpression = assignment.getLExpression();
      if (!(lExpression instanceof PsiReferenceExpression) || !((PsiReferenceExpression)lExpression).isReferenceTo(myField) ||
          ((PsiReferenceExpression)lExpression).getQualifierExpression() != null) {
        return;
      }
      PsiExpression rExpression = assignment.getRExpression();
      if (rExpression == null) return;
      PsiCodeBlock block = tryCast(statement.getParent(), PsiCodeBlock.class);
      if (block == null || !(block.getParent() instanceof PsiClassInitializer)) return;
      if (block.getStatementCount() != 1) return;
      myField.setInitializer(rExpression);
      block.getParent().delete();
    }
@Override
    void collapse(@NotNull PsiElement anchor)