mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 06:24:27 +08:00
Stop subclassing CompiledName, potentially fixes #1667
This commit is contained in:
@@ -401,21 +401,10 @@ class AnonymousInstance(_BaseTreeInstance):
|
|||||||
_arguments = None
|
_arguments = None
|
||||||
|
|
||||||
|
|
||||||
class CompiledInstanceName(compiled.CompiledName):
|
class CompiledInstanceName(NameWrapper):
|
||||||
def __init__(self, inference_state, instance, klass, name):
|
|
||||||
parent_value = klass.parent_context.get_value()
|
|
||||||
assert parent_value is not None, "How? Please reproduce and report"
|
|
||||||
super().__init__(
|
|
||||||
inference_state,
|
|
||||||
parent_value,
|
|
||||||
name.string_name
|
|
||||||
)
|
|
||||||
self._instance = instance
|
|
||||||
self._class_member_name = name
|
|
||||||
|
|
||||||
@iterator_to_value_set
|
@iterator_to_value_set
|
||||||
def infer(self):
|
def infer(self):
|
||||||
for result_value in self._class_member_name.infer():
|
for result_value in self._wrapped_name.infer():
|
||||||
if result_value.api_type == 'function':
|
if result_value.api_type == 'function':
|
||||||
yield CompiledBoundMethod(result_value)
|
yield CompiledBoundMethod(result_value)
|
||||||
else:
|
else:
|
||||||
@@ -434,11 +423,7 @@ class CompiledInstanceClassFilter(AbstractFilter):
|
|||||||
return self._convert(self._class_filter.values())
|
return self._convert(self._class_filter.values())
|
||||||
|
|
||||||
def _convert(self, names):
|
def _convert(self, names):
|
||||||
klass = self._class_filter.compiled_value
|
return [CompiledInstanceName(n) for n in names]
|
||||||
return [
|
|
||||||
CompiledInstanceName(self._instance.inference_state, self._instance, klass, n)
|
|
||||||
for n in names
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class BoundMethod(FunctionMixin, ValueWrapper):
|
class BoundMethod(FunctionMixin, ValueWrapper):
|
||||||
|
|||||||
Reference in New Issue
Block a user