From: Robert Bradshaw Date: Wed, 16 Jul 2008 04:31:18 +0000 (-0700) Subject: Minor fix for switch node. X-Git-Tag: 0.9.8.1~123^2~5 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=44a8c73d43d573c2f5c7effd7aa22d530cb58b9c;p=cython.git Minor fix for switch node. --- diff --git a/Cython/Compiler/Optimize.py b/Cython/Compiler/Optimize.py index 77a26a82..ae4dbcc9 100644 --- a/Cython/Compiler/Optimize.py +++ b/Cython/Compiler/Optimize.py @@ -71,6 +71,8 @@ class SwitchTransform(Visitor.VisitorTransform): cases.append(Nodes.SwitchCaseNode(pos = if_clause.pos, conditions = conditions, body = if_clause.body)) + + common_var = unwrap_node(common_var) return Nodes.SwitchStatNode(pos = node.pos, test = common_var, cases = cases, diff --git a/tests/run/switch.pyx b/tests/run/switch.pyx index da574517..da5bed14 100644 --- a/tests/run/switch.pyx +++ b/tests/run/switch.pyx @@ -25,9 +25,9 @@ __doc__ = u""" >>> switch_py(8) 4 >>> switch_py(10) -7 +10 >>> switch_py(12) -8 +12 >>> switch_py(13) 0 @@ -57,9 +57,9 @@ __doc__ = u""" >>> switch_c(8) 4 >>> switch_c(10) -7 +10 >>> switch_c(12) -8 +12 >>> switch_c(13) 0 """ @@ -86,10 +86,10 @@ def switch_py(x): return 3 elif x in [4,5,7,8]: return 4 - elif x in (10,11): # doesn't work: (7,8,10,11) - return 7 + elif x in (10,11): + return 10 elif x in (12,): - return 8 + return 12 else: return 0 return -1 @@ -116,10 +116,10 @@ def switch_c(int x): return 3 elif x in [4,5,7,8]: return 4 - elif x in (10,11): # doesn't work: (7,8,10,11) - return 7 + elif x in (10,11): + return 10 elif x in (12,): - return 8 + return 12 else: return 0 return -1