Commit e8a2a0bd authored by Stefan Behnel's avatar Stefan Behnel

code simplification

parent 57e40836
...@@ -314,41 +314,41 @@ class FlattenInListTransform(Visitor.VisitorTransform, SkipDeclarations): ...@@ -314,41 +314,41 @@ class FlattenInListTransform(Visitor.VisitorTransform, SkipDeclarations):
else: else:
return node return node
if isinstance(node.operand2, ExprNodes.TupleNode) or isinstance(node.operand2, ExprNodes.ListNode): if not isinstance(node.operand2, (ExprNodes.TupleNode, ExprNodes.ListNode)):
args = node.operand2.args return node
if len(args) == 0:
return ExprNodes.BoolNode(pos = node.pos, value = node.operator == 'not_in')
if node.operand1.is_simple(): args = node.operand2.args
lhs = node.operand1 if len(args) == 0:
else: return ExprNodes.BoolNode(pos = node.pos, value = node.operator == 'not_in')
# FIXME: allocate temp for evaluated node.operand1
return node
conds = [] if True or node.operand1.is_simple():
for arg in args: lhs = node.operand1
cond = ExprNodes.PrimaryCmpNode(
pos = node.pos,
operand1 = lhs,
operator = eq_or_neq,
operand2 = arg,
cascade = None)
conds.append(ExprNodes.TypecastNode(
pos = node.pos,
operand = cond,
type = PyrexTypes.c_bint_type))
if type(lhs) is not ExprNodes.CloneNode:
lhs = ExprNodes.CloneNode(lhs)
def concat(left, right):
return ExprNodes.BoolBinopNode(
pos = node.pos,
operator = conjunction,
operand1 = left,
operand2 = right)
return reduce(concat, conds)
else: else:
# FIXME: allocate temp for evaluated node.operand1
return node return node
conds = []
for arg in args:
cond = ExprNodes.PrimaryCmpNode(
pos = node.pos,
operand1 = lhs,
operator = eq_or_neq,
operand2 = arg,
cascade = None)
conds.append(ExprNodes.TypecastNode(
pos = node.pos,
operand = cond,
type = PyrexTypes.c_bint_type))
if type(lhs) is not ExprNodes.CloneNode:
lhs = ExprNodes.CloneNode(lhs)
def concat(left, right):
return ExprNodes.BoolBinopNode(
pos = node.pos,
operator = conjunction,
operand1 = left,
operand2 = right)
return reduce(concat, conds)
def visit_Node(self, node): def visit_Node(self, node):
self.visitchildren(node) self.visitchildren(node)
......
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