1
0
forked from VimPlug/jedi
This commit is contained in:
Johannes Mikulasch
2017-10-31 14:02:35 +01:00
5 changed files with 25 additions and 3 deletions
+2 -1
View File
@@ -44,6 +44,7 @@ Mathias Rav (@Mortal) <rav@cs.au.dk>
Daniel Fiterman (@dfit99) <fitermandaniel2@gmail.com> Daniel Fiterman (@dfit99) <fitermandaniel2@gmail.com>
Simon Ruggier (@sruggier) Simon Ruggier (@sruggier)
Élie Gouzien (@ElieGouzien) Élie Gouzien (@ElieGouzien)
Robin Roth (@robinro)
Malte Plath (@langsamer)
Note: (@user) means a github user name. Note: (@user) means a github user name.
+2
View File
@@ -249,6 +249,8 @@ class Evaluator(object):
else: else:
i = trailer.parent.children.index(trailer) i = trailer.parent.children.index(trailer)
to_evaluate = trailer.parent.children[:i] to_evaluate = trailer.parent.children[:i]
if to_evaluate[0] == 'await':
to_evaluate.pop(0)
context_set = context.eval_node(to_evaluate[0]) context_set = context.eval_node(to_evaluate[0])
for trailer in to_evaluate[1:]: for trailer in to_evaluate[1:]:
context_set = eval_trailer(context, context_set, trailer) context_set = eval_trailer(context, context_set, trailer)
+9 -2
View File
@@ -58,8 +58,11 @@ def evaluate_call_of_leaf(context, leaf, cut_own_trailer=False):
If you're using the leaf, e.g. the bracket `)` it will return ``list([])``. If you're using the leaf, e.g. the bracket `)` it will return ``list([])``.
# TODO remove cut_own_trailer option, since its always used with it. Just We use this function for two purposes. Given an expression ``bar.foo``,
# ignore it, It's not what we want anyway. Or document it better? we may want to
- infer the type of ``foo`` to offer completions after foo
- infer the type of ``bar`` to be able to jump to the definition of foo
The option ``cut_own_trailer`` must be set to true for the second purpose.
""" """
trailer = leaf.parent trailer = leaf.parent
# The leaf may not be the last or first child, because there exist three # The leaf may not be the last or first child, because there exist three
@@ -89,6 +92,10 @@ def evaluate_call_of_leaf(context, leaf, cut_own_trailer=False):
base = power.children[0] base = power.children[0]
trailers = power.children[1:cut] trailers = power.children[1:cut]
if base == 'await':
base = trailers[0]
trailers = trailers[1:]
values = context.eval_node(base) values = context.eval_node(base)
from jedi.evaluate.syntax_tree import eval_trailer from jedi.evaluate.syntax_tree import eval_trailer
for trailer in trailers: for trailer in trailers:
+1
View File
@@ -31,6 +31,7 @@ setup(name='jedi',
long_description=readme, long_description=readme,
packages=find_packages(exclude=['test']), packages=find_packages(exclude=['test']),
install_requires=install_requires, install_requires=install_requires,
extras_require={'dev': ['docopt']},
package_data={'jedi': ['evaluate/compiled/fake/*.pym']}, package_data={'jedi': ['evaluate/compiled/fake/*.pym']},
platforms=['any'], platforms=['any'],
classifiers=[ classifiers=[
+11
View File
@@ -23,3 +23,14 @@ async def x2():
async with open('asdf') as f: async with open('asdf') as f:
#? ['readlines'] #? ['readlines']
f.readlines f.readlines
class A():
@staticmethod
async def b(c=1, d=2):
return 1
#! 9 ['def b']
await A.b()
#! 11 ['param d=2']
await A.b(d=3)