default List<? extends PyAstTargetExpression> getClassAttributes() {
    List<PyAstTargetExpression> result = new ArrayList<>();
    for (PsiElement psiElement : getStatementList().getChildren()) {
      if (psiElement instanceof PyAstAssignmentStatement assignmentStatement) {
        final PyAstExpression[] targets = assignmentStatement.getTargets();
        for (PyAstExpression target : targets) {
          if (target instanceof PyAstTargetExpression) {
            result.add((PyAstTargetExpression)target);
          }
        }
      }
      else if (psiElement instanceof PyAstTypeDeclarationStatement) {
        final PyAstExpression target = ((PyAstTypeDeclarationStatement)psiElement).getTarget();
        if (target instanceof PyAstTargetExpression) {
          result.add((PyAstTargetExpression)target);
        }
      }
    }
    return result;
  }
default List<? extends PyAstTargetExpression> getClassAttributes()