mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 22:44:27 +08:00
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)
|
scope = get_user_scope(self._module, self._position)
|
||||||
if not scope.is_scope(): # Might be a flow (if/while/etc).
|
if not scope.is_scope(): # Might be a flow (if/while/etc).
|
||||||
scope = scope.get_parent_scope()
|
scope = scope.get_parent_scope()
|
||||||
|
scope = self._evaluator.wrap(scope)
|
||||||
|
debug.dbg('global completion scope: %s', scope)
|
||||||
names_dicts = global_names_dict_generator(
|
names_dicts = global_names_dict_generator(
|
||||||
self._evaluator,
|
self._evaluator,
|
||||||
self._evaluator.wrap(scope),
|
scope,
|
||||||
self._position
|
self._position
|
||||||
)
|
)
|
||||||
completion_names = []
|
completion_names = []
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ from jedi.evaluate.compiled import mixed
|
|||||||
|
|
||||||
class MixedModule(object):
|
class MixedModule(object):
|
||||||
resets_positions = True
|
resets_positions = True
|
||||||
|
type = 'mixed_module'
|
||||||
|
|
||||||
def __init__(self, evaluator, parser_module, namespaces):
|
def __init__(self, evaluator, parser_module, namespaces):
|
||||||
self._evaluator = evaluator
|
self._evaluator = evaluator
|
||||||
|
|||||||
@@ -235,7 +235,12 @@ class NameFinder(object):
|
|||||||
"""
|
"""
|
||||||
for n in names:
|
for n in names:
|
||||||
definition = n.parent
|
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
|
yield self._evaluator.wrap(definition).name
|
||||||
else:
|
else:
|
||||||
yield n
|
yield n
|
||||||
|
|||||||
@@ -59,7 +59,8 @@ def test_side_effect_completion():
|
|||||||
_GlobalNameSpace.SideEffectContainer.foo = 1
|
_GlobalNameSpace.SideEffectContainer.foo = 1
|
||||||
side_effect = get_completion('SideEffectContainer', _GlobalNameSpace.__dict__)
|
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__)
|
foo = get_completion('SideEffectContainer.foo', _GlobalNameSpace.__dict__)
|
||||||
assert foo.name == 'foo'
|
assert foo.name == 'foo'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user