mirror of
https://github.com/davidhalter/jedi.git
synced 2026-03-01 10:46:51 +08:00
Fix some internal name handling.
This commit is contained in:
@@ -12,7 +12,8 @@ from jedi import debug
|
||||
from jedi.cache import underscore_memoization, memoize_method
|
||||
from jedi.parser.tree import Param, Operator
|
||||
from jedi.evaluate.helpers import FakeName
|
||||
from jedi.evaluate.filters import AbstractFilter, AbstractNameDefinition
|
||||
from jedi.evaluate.filters import AbstractFilter, AbstractNameDefinition, \
|
||||
ContextNameMixin
|
||||
from jedi.evaluate.context import Context, LazyKnownContext
|
||||
from . import fake
|
||||
|
||||
@@ -300,13 +301,11 @@ class UnresolvableParamName(AbstractNameDefinition):
|
||||
return set()
|
||||
|
||||
|
||||
class CompiledContextName(AbstractNameDefinition):
|
||||
def __init__(self, parent_context, name):
|
||||
class CompiledContextName(ContextNameMixin, AbstractNameDefinition):
|
||||
def __init__(self, context, name):
|
||||
self.string_name = name
|
||||
self.parent_context = parent_context
|
||||
|
||||
def infer(self):
|
||||
return [self.parent_context]
|
||||
self._context = context
|
||||
self.parent_context = context.parent_context
|
||||
|
||||
|
||||
class LazyNamesDict(object):
|
||||
|
||||
@@ -52,24 +52,26 @@ class AbstractTreeName(AbstractNameDefinition):
|
||||
return self.tree_name.start_pos
|
||||
|
||||
|
||||
class ContextName(AbstractTreeName):
|
||||
def __init__(self, context, tree_name):
|
||||
super(ContextName, self).__init__(context.parent_context, tree_name)
|
||||
self._context = context
|
||||
|
||||
class ContextNameMixin(object):
|
||||
def infer(self):
|
||||
return [self._context]
|
||||
return set([self._context])
|
||||
|
||||
def get_root_context(self):
|
||||
if self.parent_context is None:
|
||||
return self._context
|
||||
return super(ContextName, self).get_root_context()
|
||||
return super(ContextNameMixin, self).get_root_context()
|
||||
|
||||
@property
|
||||
def api_type(self):
|
||||
return self._context.api_type
|
||||
|
||||
|
||||
class ContextName(ContextNameMixin, AbstractTreeName):
|
||||
def __init__(self, context, tree_name):
|
||||
super(ContextName, self).__init__(context.parent_context, tree_name)
|
||||
self._context = context
|
||||
|
||||
|
||||
class TreeNameDefinition(AbstractTreeName):
|
||||
def get_parent_flow_context(self):
|
||||
return self.parent_context
|
||||
|
||||
@@ -216,7 +216,7 @@ class ClassContext(use_metaclass(CachedMetaClass, context.TreeContext)):
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
return method()[:-1]
|
||||
return list(method())[1:]
|
||||
return []
|
||||
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user