summaryrefslogtreecommitdiff
path: root/astroid/interpreter
diff options
context:
space:
mode:
authorDaniel van Noord <13665637+DanielNoord@users.noreply.github.com>2023-04-25 13:32:28 +0200
committerDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2023-04-25 13:52:45 +0200
commitf13b247d617de36f44d7e825566f134174723c28 (patch)
tree2bed6354c5e96263f2cdbca0adda8d7dad6c47d4 /astroid/interpreter
parent82f62c26038b12466e075a235427f73d073f8362 (diff)
downloadastroid-git-f13b247d617de36f44d7e825566f134174723c28.tar.gz
Fix the signature of ``infer_call_result``
Diffstat (limited to 'astroid/interpreter')
-rw-r--r--astroid/interpreter/objectmodel.py38
1 files changed, 26 insertions, 12 deletions
diff --git a/astroid/interpreter/objectmodel.py b/astroid/interpreter/objectmodel.py
index 12405684..fbc454bf 100644
--- a/astroid/interpreter/objectmodel.py
+++ b/astroid/interpreter/objectmodel.py
@@ -27,6 +27,7 @@ import itertools
import os
import pprint
import types
+from collections.abc import Iterator
from functools import lru_cache
from typing import TYPE_CHECKING, Any, Literal
@@ -36,6 +37,7 @@ from astroid.context import InferenceContext, copy_context
from astroid.exceptions import AttributeInferenceError, InferenceError, NoDefault
from astroid.manager import AstroidManager
from astroid.nodes import node_classes
+from astroid.typing import InferenceResult, SuccessfulInferenceResult
if TYPE_CHECKING:
from astroid.objects import Property
@@ -337,8 +339,10 @@ class FunctionModel(ObjectModel):
return 0
def infer_call_result(
- self, caller, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[bases.BoundMethod]:
if len(caller.args) > 2 or len(caller.args) < 1:
raise InferenceError(
"Invalid arguments for descriptor binding",
@@ -501,8 +505,10 @@ class ClassModel(ObjectModel):
# The method we're returning is capable of inferring the underlying MRO though.
class MroBoundMethod(bases.BoundMethod):
def infer_call_result(
- self, caller, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[node_classes.Tuple]:
yield other_self.attr___mro__
implicit_metaclass = self._instance.implicit_metaclass()
@@ -549,8 +555,10 @@ class ClassModel(ObjectModel):
class SubclassesBoundMethod(bases.BoundMethod):
def infer_call_result(
- self, caller, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[node_classes.List]:
yield obj
implicit_metaclass = self._instance.implicit_metaclass()
@@ -817,8 +825,10 @@ class DictModel(ObjectModel):
class DictMethodBoundMethod(astroid.BoundMethod):
def infer_call_result(
- self, caller, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[InferenceResult]:
yield obj
meth = next(self._instance._proxied.igetattr(name), None)
@@ -896,8 +906,10 @@ class PropertyModel(ObjectModel):
class PropertyFuncAccessor(nodes.FunctionDef):
def infer_call_result(
- self, caller=None, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[InferenceResult]:
nonlocal func
if caller and len(caller.args) != 1:
raise InferenceError(
@@ -946,8 +958,10 @@ class PropertyModel(ObjectModel):
class PropertyFuncAccessor(nodes.FunctionDef):
def infer_call_result(
- self, caller=None, context: InferenceContext | None = None
- ):
+ self,
+ caller: SuccessfulInferenceResult | None,
+ context: InferenceContext | None = None,
+ ) -> Iterator[InferenceResult]:
nonlocal func_setter
if caller and len(caller.args) != 2:
raise InferenceError(