Add an exact_key_items method to DictComprehension fixes #1233

This commit is contained in:
Jelte Fennema
2018-10-11 11:39:42 +02:00
committed by Dave Halter
parent bd1010bbd2
commit 3bdb941daa
3 changed files with 31 additions and 0 deletions

View File

@@ -267,6 +267,11 @@ class DictComprehension(ComprehensionMixin, Sequence):
return ContextSet(FakeSequence(self.evaluator, u'list', lazy_contexts))
def exact_key_items(self):
# NOTE: A smarter thing can probably done here to achieve better
# completions, but at least like this jedi doesn't crash
return []
class GeneratorComprehension(ComprehensionMixin, GeneratorBase):
pass

View File

@@ -319,6 +319,7 @@ exe['c']
a = 'a'
exe2 = kwargs_func(**{a:3,
'b':4.0})
#? int()
exe2['a']
#? float()
@@ -326,6 +327,19 @@ exe2['b']
#? int() float()
exe2['c']
exe3 = kwargs_func(**{k: v for k, v in [(a, 3), ('b', 4.0)]})
# Should resolve to the same as 2 but jedi is not smart enough yet
# Here to make sure it doesn't result in crash though
#?
exe3['a']
#?
exe3['b']
#?
exe3['c']
# -----------------
# *args / ** kwargs
# -----------------

View File

@@ -138,18 +138,30 @@ set_t2.c
# python >= 3.5
d = {'a': 3}
dc = {v: 3 for v in ['a']}
#? dict()
{**d}
#? dict()
{**dc}
#? str()
{**d, "b": "b"}["b"]
#? str()
{**dc, "b": "b"}["b"]
# Should resolve to int() but jedi is not smart enough yet
# Here to make sure it doesn't result in crash though
#?
{**d}["a"]
# Should resolve to int() but jedi is not smart enough yet
# Here to make sure it doesn't result in crash though
#?
{**dc}["a"]
s = {1, 2, 3}
#? set()