diff options
author | Batuhan Taşkaya <47358913+isidentical@users.noreply.github.com> | 2020-03-04 16:16:47 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-04 16:16:46 (GMT) |
commit | d82e469048e0e034d8c0020cd33b733be1adf68b (patch) | |
tree | 169c91ab5f25d4f8e0b9ceb8a4c9800428cf82b7 /Python/Python-ast.c | |
parent | 702e09fd0ad72b248b5adfa0fcfdb58600be77f6 (diff) | |
download | cpython-d82e469048e0e034d8c0020cd33b733be1adf68b.zip cpython-d82e469048e0e034d8c0020cd33b733be1adf68b.tar.gz cpython-d82e469048e0e034d8c0020cd33b733be1adf68b.tar.bz2 |
bpo-39639: Remove the AST "Suite" node and associated code (GH-18513)
The AST "Suite" node is no longer used and it can be removed from the ASDL definition and related structures (compiler, visitors, ...).
Co-Authored-By: Victor Stinner <vstinner@python.org>
Co-authored-by: Brett Cannon <54418+brettcannon@users.noreply.github.com>
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Diffstat (limited to 'Python/Python-ast.c')
-rw-r--r-- | Python/Python-ast.c | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c index e9925e7..2784c42 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -127,7 +127,6 @@ typedef struct { PyObject *Sub_singleton; PyObject *Sub_type; PyObject *Subscript_type; - PyObject *Suite_type; PyObject *Try_type; PyObject *Tuple_type; PyObject *TypeIgnore_type; @@ -357,7 +356,6 @@ static int astmodule_clear(PyObject *module) Py_CLEAR(astmodulestate(module)->Sub_singleton); Py_CLEAR(astmodulestate(module)->Sub_type); Py_CLEAR(astmodulestate(module)->Subscript_type); - Py_CLEAR(astmodulestate(module)->Suite_type); Py_CLEAR(astmodulestate(module)->Try_type); Py_CLEAR(astmodulestate(module)->Tuple_type); Py_CLEAR(astmodulestate(module)->TypeIgnore_type); @@ -586,7 +584,6 @@ static int astmodule_traverse(PyObject *module, visitproc visit, void* arg) Py_VISIT(astmodulestate(module)->Sub_singleton); Py_VISIT(astmodulestate(module)->Sub_type); Py_VISIT(astmodulestate(module)->Subscript_type); - Py_VISIT(astmodulestate(module)->Suite_type); Py_VISIT(astmodulestate(module)->Try_type); Py_VISIT(astmodulestate(module)->Tuple_type); Py_VISIT(astmodulestate(module)->TypeIgnore_type); @@ -807,9 +804,6 @@ static const char * const FunctionType_fields[]={ "argtypes", "returns", }; -static const char * const Suite_fields[]={ - "body", -}; static const char * const stmt_attributes[] = { "lineno", "col_offset", @@ -1442,8 +1436,6 @@ static int init_types(void) state->FunctionType_type = make_type("FunctionType", state->mod_type, FunctionType_fields, 2); if (!state->FunctionType_type) return 0; - state->Suite_type = make_type("Suite", state->mod_type, Suite_fields, 1); - if (!state->Suite_type) return 0; state->stmt_type = make_type("stmt", state->AST_type, NULL, 0); if (!state->stmt_type) return 0; if (!add_attributes(state->stmt_type, stmt_attributes, 4)) return 0; @@ -1920,18 +1912,6 @@ FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena) return p; } -mod_ty -Suite(asdl_seq * body, PyArena *arena) -{ - mod_ty p; - p = (mod_ty)PyArena_Malloc(arena, sizeof(*p)); - if (!p) - return NULL; - p->kind = Suite_kind; - p->v.Suite.body = body; - return p; -} - stmt_ty FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq * decorator_list, expr_ty returns, string type_comment, int lineno, @@ -3416,16 +3396,6 @@ ast2obj_mod(void* _o) goto failed; Py_DECREF(value); break; - case Suite_kind: - tp = (PyTypeObject *)astmodulestate_global->Suite_type; - result = PyType_GenericNew(tp, NULL, NULL); - if (!result) goto failed; - value = ast2obj_list(o->v.Suite.body, ast2obj_stmt); - if (!value) goto failed; - if (PyObject_SetAttr(result, astmodulestate_global->body, value) == -1) - goto failed; - Py_DECREF(value); - break; } return result; failed: @@ -5201,51 +5171,6 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena) if (*out == NULL) goto failed; return 0; } - tp = astmodulestate_global->Suite_type; - isinstance = PyObject_IsInstance(obj, tp); - if (isinstance == -1) { - return 1; - } - if (isinstance) { - asdl_seq* body; - - if (_PyObject_LookupAttr(obj, astmodulestate_global->body, &tmp) < 0) { - return 1; - } - if (tmp == NULL) { - PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Suite"); - return 1; - } - else { - int res; - Py_ssize_t len; - Py_ssize_t i; - if (!PyList_Check(tmp)) { - PyErr_Format(PyExc_TypeError, "Suite field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp))); - goto failed; - } - len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty val; - PyObject *tmp2 = PyList_GET_ITEM(tmp, i); - Py_INCREF(tmp2); - res = obj2ast_stmt(tmp2, &val, arena); - Py_DECREF(tmp2); - if (res != 0) goto failed; - if (len != PyList_GET_SIZE(tmp)) { - PyErr_SetString(PyExc_RuntimeError, "Suite field \"body\" changed size during iteration"); - goto failed; - } - asdl_seq_SET(body, i, val); - } - Py_CLEAR(tmp); - } - *out = Suite(body, arena); - if (*out == NULL) goto failed; - return 0; - } PyErr_Format(PyExc_TypeError, "expected some sort of mod, but got %R", obj); failed: @@ -9924,10 +9849,6 @@ PyInit__ast(void) goto error; } Py_INCREF(astmodulestate(m)->FunctionType_type); - if (PyModule_AddObject(m, "Suite", astmodulestate_global->Suite_type) < 0) { - goto error; - } - Py_INCREF(astmodulestate(m)->Suite_type); if (PyModule_AddObject(m, "stmt", astmodulestate_global->stmt_type) < 0) { goto error; } |