Commit 44a8c73d authored by Robert Bradshaw's avatar Robert Bradshaw

Minor fix for switch node.

parent 858476d4
...@@ -71,6 +71,8 @@ class SwitchTransform(Visitor.VisitorTransform): ...@@ -71,6 +71,8 @@ class SwitchTransform(Visitor.VisitorTransform):
cases.append(Nodes.SwitchCaseNode(pos = if_clause.pos, cases.append(Nodes.SwitchCaseNode(pos = if_clause.pos,
conditions = conditions, conditions = conditions,
body = if_clause.body)) body = if_clause.body))
common_var = unwrap_node(common_var)
return Nodes.SwitchStatNode(pos = node.pos, return Nodes.SwitchStatNode(pos = node.pos,
test = common_var, test = common_var,
cases = cases, cases = cases,
......
...@@ -25,9 +25,9 @@ __doc__ = u""" ...@@ -25,9 +25,9 @@ __doc__ = u"""
>>> switch_py(8) >>> switch_py(8)
4 4
>>> switch_py(10) >>> switch_py(10)
7 10
>>> switch_py(12) >>> switch_py(12)
8 12
>>> switch_py(13) >>> switch_py(13)
0 0
...@@ -57,9 +57,9 @@ __doc__ = u""" ...@@ -57,9 +57,9 @@ __doc__ = u"""
>>> switch_c(8) >>> switch_c(8)
4 4
>>> switch_c(10) >>> switch_c(10)
7 10
>>> switch_c(12) >>> switch_c(12)
8 12
>>> switch_c(13) >>> switch_c(13)
0 0
""" """
...@@ -86,10 +86,10 @@ def switch_py(x): ...@@ -86,10 +86,10 @@ def switch_py(x):
return 3 return 3
elif x in [4,5,7,8]: elif x in [4,5,7,8]:
return 4 return 4
elif x in (10,11): # doesn't work: (7,8,10,11) elif x in (10,11):
return 7 return 10
elif x in (12,): elif x in (12,):
return 8 return 12
else: else:
return 0 return 0
return -1 return -1
...@@ -116,10 +116,10 @@ def switch_c(int x): ...@@ -116,10 +116,10 @@ def switch_c(int x):
return 3 return 3
elif x in [4,5,7,8]: elif x in [4,5,7,8]:
return 4 return 4
elif x in (10,11): # doesn't work: (7,8,10,11) elif x in (10,11):
return 7 return 10
elif x in (12,): elif x in (12,):
return 8 return 12
else: else:
return 0 return 0
return -1 return -1
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