ANSI-C-ify the placement of local var declarations.
This commit is contained in:
parent
b2308bb9be
commit
3144130217
14
Python/ast.c
14
Python/ast.c
|
@ -512,14 +512,14 @@ static asdl_seq *
|
|||
seq_for_testlist(struct compiling *c, const node *n)
|
||||
{
|
||||
/* testlist: test (',' test)* [','] */
|
||||
asdl_seq *seq;
|
||||
expr_ty expression;
|
||||
int i;
|
||||
assert(TYPE(n) == testlist
|
||||
|| TYPE(n) == listmaker
|
||||
|| TYPE(n) == testlist_gexp
|
||||
|| TYPE(n) == testlist_safe
|
||||
);
|
||||
asdl_seq *seq;
|
||||
expr_ty expression;
|
||||
int i;
|
||||
|
||||
seq = asdl_seq_new((NCH(n) + 1) / 2);
|
||||
if (!seq)
|
||||
|
@ -641,12 +641,13 @@ ast_for_arguments(struct compiling *c, const node *n)
|
|||
compiler_complex_args(CHILD(ch, 1)));
|
||||
}
|
||||
else if (TYPE(CHILD(ch, 0)) == NAME) {
|
||||
expr_ty name;
|
||||
if (!strcmp(STR(CHILD(ch, 0)), "None")) {
|
||||
ast_error(CHILD(ch, 0), "assignment to None");
|
||||
goto error;
|
||||
}
|
||||
expr_ty name = Name(NEW_IDENTIFIER(CHILD(ch, 0)),
|
||||
Param, LINENO(ch));
|
||||
name = Name(NEW_IDENTIFIER(CHILD(ch, 0)),
|
||||
Param, LINENO(ch));
|
||||
if (!name)
|
||||
goto error;
|
||||
asdl_seq_APPEND(args, name);
|
||||
|
@ -1897,12 +1898,13 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
|
|||
if (!targets)
|
||||
return NULL;
|
||||
for (i = 0; i < NCH(n) - 2; i += 2) {
|
||||
expr_ty e;
|
||||
node *ch = CHILD(n, i);
|
||||
if (TYPE(ch) == yield_expr) {
|
||||
ast_error(ch, "assignment to yield expression not possible");
|
||||
goto error;
|
||||
}
|
||||
expr_ty e = ast_for_testlist(c, ch, 0);
|
||||
e = ast_for_testlist(c, ch, 0);
|
||||
|
||||
/* set context to assign */
|
||||
if (!e)
|
||||
|
|
|
@ -2329,8 +2329,9 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname)
|
|||
src = dot + 1;
|
||||
while (dot) {
|
||||
/* NB src is only defined when dot != NULL */
|
||||
PyObject *attr;
|
||||
dot = strchr(src, '.');
|
||||
PyObject *attr = PyString_FromStringAndSize(src,
|
||||
attr = PyString_FromStringAndSize(src,
|
||||
dot ? dot - src : strlen(src));
|
||||
ADDOP_O(c, LOAD_ATTR, attr, names);
|
||||
src = dot + 1;
|
||||
|
|
|
@ -444,12 +444,13 @@ analyze_cells(PyObject *scope, PyObject *free)
|
|||
static int
|
||||
check_unoptimized(const PySTEntryObject* ste) {
|
||||
char buf[300];
|
||||
const char* trailer;
|
||||
|
||||
if (ste->ste_type == ModuleBlock || !ste->ste_unoptimized
|
||||
|| !(ste->ste_free || ste->ste_child_free))
|
||||
return 1;
|
||||
|
||||
const char* trailer = (ste->ste_child_free ?
|
||||
trailer = (ste->ste_child_free ?
|
||||
"contains a nested function with free variables" :
|
||||
"is a nested function");
|
||||
|
||||
|
@ -621,8 +622,9 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
|
|||
/* Recursively call analyze_block() on each child block */
|
||||
for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) {
|
||||
PyObject *c = PyList_GET_ITEM(ste->ste_children, i);
|
||||
PySTEntryObject* entry;
|
||||
assert(c && PySTEntry_Check(c));
|
||||
PySTEntryObject* entry = (PySTEntryObject*)c;
|
||||
entry = (PySTEntryObject*)c;
|
||||
if (!analyze_block(entry, newbound, newfree, newglobal))
|
||||
goto error;
|
||||
if (entry->ste_free || entry->ste_child_free)
|
||||
|
|
Loading…
Reference in New Issue