mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 05:54:25 +08:00
Add an exact_key_items method to DictComprehension fixes #1233
This commit is contained in:
committed by
Dave Halter
parent
bd1010bbd2
commit
3bdb941daa
@@ -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
|
||||
|
||||
@@ -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
|
||||
# -----------------
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user