forked from VimPlug/jedi
Refactor something to use .type instead of isinstance.
This commit is contained in:
@@ -179,9 +179,11 @@ class Completion:
|
||||
scope = get_user_scope(self._module, self._position)
|
||||
if not scope.is_scope(): # Might be a flow (if/while/etc).
|
||||
scope = scope.get_parent_scope()
|
||||
scope = self._evaluator.wrap(scope)
|
||||
debug.dbg('global completion scope: %s', scope)
|
||||
names_dicts = global_names_dict_generator(
|
||||
self._evaluator,
|
||||
self._evaluator.wrap(scope),
|
||||
scope,
|
||||
self._position
|
||||
)
|
||||
completion_names = []
|
||||
|
||||
@@ -22,6 +22,7 @@ from jedi.evaluate.compiled import mixed
|
||||
|
||||
class MixedModule(object):
|
||||
resets_positions = True
|
||||
type = 'mixed_module'
|
||||
|
||||
def __init__(self, evaluator, parser_module, namespaces):
|
||||
self._evaluator = evaluator
|
||||
|
||||
@@ -235,7 +235,12 @@ class NameFinder(object):
|
||||
"""
|
||||
for n in names:
|
||||
definition = n.parent
|
||||
if isinstance(definition, (tree.Function, tree.Class, tree.Module)):
|
||||
if isinstance(definition, (compiled.CompiledObject,
|
||||
iterable.BuiltinMethod)):
|
||||
# TODO this if should really be removed by changing the type of
|
||||
# those classes.
|
||||
yield n
|
||||
elif definition.type in ('funcdef', 'classdef', 'file_input'):
|
||||
yield self._evaluator.wrap(definition).name
|
||||
else:
|
||||
yield n
|
||||
|
||||
@@ -59,7 +59,8 @@ def test_side_effect_completion():
|
||||
_GlobalNameSpace.SideEffectContainer.foo = 1
|
||||
side_effect = get_completion('SideEffectContainer', _GlobalNameSpace.__dict__)
|
||||
|
||||
assert isinstance(side_effect._definition, mixed.MixedObject)
|
||||
# It's a class that contains MixedObject.
|
||||
assert isinstance(side_effect._definition.base, mixed.MixedObject)
|
||||
foo = get_completion('SideEffectContainer.foo', _GlobalNameSpace.__dict__)
|
||||
assert foo.name == 'foo'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user