diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index a82fda7f..f767d459 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -43,7 +43,7 @@ class CompiledObject(Base): self.doc = inspect.getdoc(obj) def __repr__(self): - return '<%s: %s>' % (type(self).__name__, self.obj) + return '<%s: %s>' % (type(self).__name__, repr(self.obj)) def get_parent_until(self, *args, **kwargs): # compiled modules only use functions and classes/methods (2 levels) diff --git a/jedi/parser/representation.py b/jedi/parser/representation.py index 8b946bfb..a95e502f 100644 --- a/jedi/parser/representation.py +++ b/jedi/parser/representation.py @@ -1058,13 +1058,12 @@ isinstance(c, (tokenize.Token, Operator)) else unicode(c) names_are_set_vars=False): stmt, tok = parse_stmt(token_iterator, allow_comma=True, added_breaks=added_breaks) - if not stmt: - return None, tok - for t in stmt._token_list: - if isinstance(t, Name): - t.parent = stmt - stmt._names_are_set_vars = names_are_set_vars + if stmt is not None: + for t in stmt._token_list: + if isinstance(t, Name): + t.parent = stmt + stmt._names_are_set_vars = names_are_set_vars return stmt, tok st = Statement(self._sub_module, token_list, start_pos, diff --git a/test/completion/basic.py b/test/completion/basic.py index 93d79be0..a993c944 100644 --- a/test/completion/basic.py +++ b/test/completion/basic.py @@ -132,11 +132,11 @@ a = [a if 1.0 else '' for a in [1] if [1.0]] a[0] # with a dict literal -#? int() -[a for a,b in {1:2}.items()][0] - #? str() -{a:b for a,b in {1:'a', 3:1.0}.items()}[1] +[a for a in {1:'x'}][0] + +##? str() +{a-1:b for a,b in {1:'a', 3:1.0}.items()}[0] # ----------------- # nested list comprehensions