Implemented x if foo else y case.

This commit is contained in:
Dave Halter
2014-11-12 11:49:27 +01:00
parent 54c5591ccb
commit c326562c27
3 changed files with 6 additions and 2 deletions

View File

@@ -189,6 +189,10 @@ class Evaluator(object):
for operator in element.children[:-1]: for operator in element.children[:-1]:
types = list(precedence.factor_calculate(self, types, operator)) types = list(precedence.factor_calculate(self, types, operator))
return types return types
elif pr.is_node(element, 'test'):
# `x if foo else y` case.
return (self.eval_element(element.children[0]) +
self.eval_element(element.children[-1]))
else: else:
return precedence.calculate_children(self, element.children) return precedence.calculate_children(self, element.children)

View File

@@ -424,7 +424,7 @@ def check_flow_information(evaluator, flow, search_name_part, pos):
return None return None
result = [] result = []
if flow.is_scope(): if False and flow.is_scope():
for ass in reversed(flow.asserts): for ass in reversed(flow.asserts):
if pos is None or ass.start_pos > pos: if pos is None or ass.start_pos > pos:
continue continue

View File

@@ -136,7 +136,7 @@ a[0]
arr = [1,''] arr = [1,'']
a = [a for a in arr] a = [a for a in arr]
#? int() #? int() str()
a[0] a[0]
a = [a if 1.0 else '' for a in [1] if [1.0]] a = [a if 1.0 else '' for a in [1] if [1.0]]