From 2a964d4e48155a7693bffcdc7c7a9485ce04f2b7 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 20 Aug 2014 16:28:04 +0200 Subject: [PATCH] Also implement the or operator. --- jedi/evaluate/precedence.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jedi/evaluate/precedence.py b/jedi/evaluate/precedence.py index ce469fca..6ad0f3ab 100644 --- a/jedi/evaluate/precedence.py +++ b/jedi/evaluate/precedence.py @@ -223,12 +223,18 @@ def process_precedence_element(evaluator, precedence): operator = precedence.operator lazy_right = lambda: process_precedence_element(evaluator, precedence.right) # handle lazy evaluation of and/or here. - if operator == 'and': + if operator in ('and', 'or'): left_bools = set([left.py__bool__() for left in left_objs]) if left_bools == set([True]): - return left_objs + if operator == 'and': + return lazy_right() + else: + return left_objs elif left_bools == set([False]): - return lazy_right() + if operator == 'and': + return left_objs + else: + return lazy_right() # Otherwise continue, because of uncertainty. return calculate(evaluator, left_objs, precedence.operator, lazy_right())