From 5334f8dbad4a1a39ad542f3bc020c17fe06b737b Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 9 Jan 2015 16:05:09 +0100 Subject: [PATCH] Implemented the in operator in a very simple fashion: It returns nothing. --- jedi/evaluate/precedence.py | 2 ++ jedi/parser/tree.py | 1 + test/completion/precedence.py | 13 +++++++++++++ 3 files changed, 16 insertions(+) diff --git a/jedi/evaluate/precedence.py b/jedi/evaluate/precedence.py index 49c7b13e..ab685da9 100644 --- a/jedi/evaluate/precedence.py +++ b/jedi/evaluate/precedence.py @@ -157,6 +157,8 @@ def _element_calculate(evaluator, left, operator, right): except TypeError: # Could be True or False. return [true_obj, false_obj] + elif operator == 'in': + return [] def check(obj): """Checks if a Jedi object is either a float or an int.""" diff --git a/jedi/parser/tree.py b/jedi/parser/tree.py index 2bab10b2..82a500de 100644 --- a/jedi/parser/tree.py +++ b/jedi/parser/tree.py @@ -400,6 +400,7 @@ class Simple(Base): def get_code(self): return "".join(c.get_code() for c in self.children) + @Python3Method def name_for_position(self, position): for c in self.children: if isinstance(c, Leaf): diff --git a/test/completion/precedence.py b/test/completion/precedence.py index 958f2701..68f15f43 100644 --- a/test/completion/precedence.py +++ b/test/completion/precedence.py @@ -68,6 +68,19 @@ i += 1 #? int() x[i] +# ----------------- +# in +# ----------------- + +if 'X' in 'Y': + a = 3 +else: + a = '' +# For now don't really check for truth values. So in should return both +# results. +#? str() int() +a + # ----------------- # for flow assignments # -----------------