Kaydet (Commit) a59ac0a7 authored tarafından Jeremy Hylton's avatar Jeremy Hylton

If a function contains a doc string, remove the doc string node from

the function's body.

If assert is used without an error message, make the AST node None
rather than Name('None').
üst d3d7bb1c
...@@ -173,6 +173,10 @@ class Transformer: ...@@ -173,6 +173,10 @@ class Transformer:
# code for function # code for function
code = self.com_node(nodelist[4]) code = self.com_node(nodelist[4])
if doc is not None:
assert isinstance(code, Stmt)
assert isinstance(code.nodes[0], Discard)
del code.nodes[0]
n = Function(name, names, defaults, flags, doc, code) n = Function(name, names, defaults, flags, doc, code)
n.lineno = lineno n.lineno = lineno
return n return n
...@@ -400,7 +404,7 @@ class Transformer: ...@@ -400,7 +404,7 @@ class Transformer:
if (len(nodelist) == 4): if (len(nodelist) == 4):
expr2 = self.com_node(nodelist[3]) expr2 = self.com_node(nodelist[3])
else: else:
expr2 = Name('None') expr2 = None
n = Assert(expr1, expr2) n = Assert(expr1, expr2)
n.lineno = nodelist[0][2] n.lineno = nodelist[0][2]
return n return n
......
...@@ -173,6 +173,10 @@ class Transformer: ...@@ -173,6 +173,10 @@ class Transformer:
# code for function # code for function
code = self.com_node(nodelist[4]) code = self.com_node(nodelist[4])
if doc is not None:
assert isinstance(code, Stmt)
assert isinstance(code.nodes[0], Discard)
del code.nodes[0]
n = Function(name, names, defaults, flags, doc, code) n = Function(name, names, defaults, flags, doc, code)
n.lineno = lineno n.lineno = lineno
return n return n
...@@ -400,7 +404,7 @@ class Transformer: ...@@ -400,7 +404,7 @@ class Transformer:
if (len(nodelist) == 4): if (len(nodelist) == 4):
expr2 = self.com_node(nodelist[3]) expr2 = self.com_node(nodelist[3])
else: else:
expr2 = Name('None') expr2 = None
n = Assert(expr1, expr2) n = Assert(expr1, expr2)
n.lineno = nodelist[0][2] n.lineno = nodelist[0][2]
return n return n
......
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