Kaydet (Commit) 5bde08db authored tarafından Guido van Rossum's avatar Guido van Rossum

Fix failure of test_compiler.py when compiling test_contextlib.py.

The culprit was an expression-less yield -- the first apparently in
the standard library.  I added a unit test for this.
Also removed the hack to force compilation of test_with.py.
üst 3a5468ef
......@@ -408,11 +408,11 @@ class Transformer:
return Discard(expr, lineno=expr.lineno)
def yield_expr(self, nodelist):
if len(nodelist)>1:
value = nodelist[1]
if len(nodelist) > 1:
value = self.com_node(nodelist[1])
else:
value = Const(None)
return Yield(self.com_node(value), lineno=nodelist[0][2])
return Yield(value, lineno=nodelist[0][2])
def raise_stmt(self, nodelist):
# raise: [test [',' test [',' test]]]
......
......@@ -20,7 +20,7 @@ class CompilerTest(unittest.TestCase):
for basename in os.listdir(dir):
if not basename.endswith(".py"):
continue
if not TEST_ALL and random() < 0.98 and basename != "test_with.py":
if not TEST_ALL and random() < 0.98:
continue
path = os.path.join(dir, basename)
if test.test_support.verbose:
......@@ -43,6 +43,9 @@ class CompilerTest(unittest.TestCase):
def testNewClassSyntax(self):
compiler.compile("class foo():pass\n\n","<string>","exec")
def testYieldExpr(self):
compiler.compile("def g(): yield\n\n", "<string>", "exec")
def testLineNo(self):
# Test that all nodes except Module have a correct lineno attribute.
filename = __file__
......
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