Kaydet (Commit) f3694703 authored tarafından Neil Schemenauer's avatar Neil Schemenauer

Fix compiler.ast.flatten function so that it works on lists.

üst 76276177
......@@ -4,9 +4,9 @@ This file is automatically generated by Tools/compiler/astgen.py
"""
from consts import CO_VARARGS, CO_VARKEYWORDS
def flatten(list):
def flatten(seq):
l = []
for elt in list:
for elt in seq:
t = type(elt)
if t is tuple or t is list:
for elt2 in flatten(elt):
......@@ -15,8 +15,8 @@ def flatten(list):
l.append(elt)
return l
def flatten_nodes(list):
return [n for n in flatten(list) if isinstance(n, Node)]
def flatten_nodes(seq):
return [n for n in flatten(seq) if isinstance(n, Node)]
nodes = {}
......
import compiler
from compiler.ast import flatten
import os
import test.test_support
import unittest
......@@ -60,6 +61,10 @@ class CompilerTest(unittest.TestCase):
for child in node.getChildNodes():
self.check_lineno(child)
def testFlatten(self):
self.assertEquals(flatten([1, [2]]), [1, 2])
self.assertEquals(flatten((1, (2,))), [1, 2])
NOLINENO = (compiler.ast.Module, compiler.ast.Stmt, compiler.ast.Discard)
###############################################################################
......
......@@ -234,9 +234,9 @@ This file is automatically generated by Tools/compiler/astgen.py
"""
from consts import CO_VARARGS, CO_VARKEYWORDS
def flatten(list):
def flatten(seq):
l = []
for elt in list:
for elt in seq:
t = type(elt)
if t is tuple or t is list:
for elt2 in flatten(elt):
......@@ -245,8 +245,8 @@ def flatten(list):
l.append(elt)
return l
def flatten_nodes(list):
return [n for n in flatten(list) if isinstance(n, Node)]
def flatten_nodes(seq):
return [n for n in flatten(seq) if isinstance(n, Node)]
nodes = {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment