1
0
forked from VimPlug/jedi

Use a class stub class

This commit is contained in:
Dave Halter
2018-08-01 10:47:46 +02:00
parent c196075cb8
commit c8caa8f4ac
2 changed files with 16 additions and 5 deletions

View File

@@ -165,10 +165,16 @@ class StubName(TreeNameDefinition):
c.parent_context,
c.tree_node,
)
elif isinstance(c, ClassContext):
yield ClassStubContext(
c.evaluator,
c.parent_context,
c.tree_node
)
else:
yield c
contexts = tree_name_to_contexts(
contexts = tree_name_to_contexts(
self.parent_context.evaluator,
self._stub_parent_context,
self._stub_tree_name
@@ -176,7 +182,6 @@ class StubName(TreeNameDefinition):
return ContextSet.from_iterable(iterate(contexts))
class StubParserTreeFilter(ParserTreeFilter):
name_class = StubName

View File

@@ -37,14 +37,20 @@ def test_get_stub_files():
def test_function(Script):
s = Script('import threading; threading.current_thread')
def_, = s.goto_definitions()
code = 'import threading; threading.current_thread'
def_, = Script(code).goto_definitions()
context = def_._name._context
assert isinstance(context, typeshed.FunctionStubContext), context
def_, = Script(code + '()').goto_definitions()
context = def_._name._context
assert isinstance(context, typeshed.ClassStubContext), context
def test_class(Script):
s = Script('import threading; threading.Lock')
def_, = Script('import threading; threading.Lock').goto_definitions()
context = def_._name._context
assert isinstance(context, typeshed.ClassStubContext), context
def test_instance(Script):