Make _fields attr for no fields consistent with _attributes attr.
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 4184bc6..e068b0a 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -163,6 +163,9 @@
self.assertEquals(x.right, 3)
self.assertEquals(x.lineno, 0)
+ # this used to fail because Sub._fields was None
+ x = _ast.Sub()
+
def test_main():
test_support.run_unittest(AST_Tests)
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 91196df..08592bc 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -674,14 +674,9 @@
{
PyObject *fnames, *result;
int i;
- if (num_fields) {
- fnames = PyTuple_New(num_fields);
- if (!fnames) return NULL;
- } else {
- fnames = Py_None;
- Py_INCREF(Py_None);
- }
- for(i=0; i < num_fields; i++) {
+ fnames = PyTuple_New(num_fields);
+ if (!fnames) return NULL;
+ for (i = 0; i < num_fields; i++) {
PyObject *field = PyString_FromString(fields[i]);
if (!field) {
Py_DECREF(fnames);
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index c44ce38..d473418 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -465,14 +465,9 @@
{
PyObject *fnames, *result;
int i;
- if (num_fields) {
- fnames = PyTuple_New(num_fields);
- if (!fnames) return NULL;
- } else {
- fnames = Py_None;
- Py_INCREF(Py_None);
- }
- for(i=0; i < num_fields; i++) {
+ fnames = PyTuple_New(num_fields);
+ if (!fnames) return NULL;
+ for (i = 0; i < num_fields; i++) {
PyObject *field = PyString_FromString(fields[i]);
if (!field) {
Py_DECREF(fnames);