mirror of https://github.com/python/cpython
Add warnings for arguments named None. All set. (I could add a
warning for 'global None', but that's either accompanied by an assignment to None, which will trigger a warning, or not, in which case it's harmless. :-)
This commit is contained in:
parent
80703c8930
commit
b7164621fa
|
@ -5025,6 +5025,14 @@ symtable_add_def(struct symtable *st, char *name, int flag)
|
||||||
char buffer[MANGLE_LEN];
|
char buffer[MANGLE_LEN];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* Warn about None, except inside a tuple (where the assignment
|
||||||
|
code already issues a warning). */
|
||||||
|
if ((flag & DEF_PARAM) && !(flag & DEF_INTUPLE) &&
|
||||||
|
*name == 'N' && strcmp(name, "None") == 0)
|
||||||
|
{
|
||||||
|
if (symtable_warn(st, "argument named None"))
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (_Py_Mangle(st->st_private, name, buffer, sizeof(buffer)))
|
if (_Py_Mangle(st->st_private, name, buffer, sizeof(buffer)))
|
||||||
name = buffer;
|
name = buffer;
|
||||||
if ((s = PyString_InternFromString(name)) == NULL)
|
if ((s = PyString_InternFromString(name)) == NULL)
|
||||||
|
@ -5310,7 +5318,7 @@ symtable_funcdef(struct symtable *st, node *n)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The next two functions parse the argument tuple.
|
/* The next two functions parse the argument tuple.
|
||||||
symtable_default_arg() checks for names in the default arguments,
|
symtable_default_args() checks for names in the default arguments,
|
||||||
which are references in the defining scope. symtable_params()
|
which are references in the defining scope. symtable_params()
|
||||||
parses the parameter names, which are defined in the function's
|
parses the parameter names, which are defined in the function's
|
||||||
body.
|
body.
|
||||||
|
|
Loading…
Reference in New Issue