Fix crash when a `slice` object is called (#10715)
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
diff --git a/doc/whatsnew/fragments/10708.bugfix b/doc/whatsnew/fragments/10708.bugfix
new file mode 100644
index 0000000..2a9b1a3
--- /dev/null
+++ b/doc/whatsnew/fragments/10708.bugfix
@@ -0,0 +1,4 @@
+Fix crash for ``prefer-typing-namedtuple`` and ``consider-math-not-float`` when
+a ``slice`` object is called.
+
+Closes #10708
diff --git a/pylint/extensions/code_style.py b/pylint/extensions/code_style.py
index d8ea869..0eff5f4 100644
--- a/pylint/extensions/code_style.py
+++ b/pylint/extensions/code_style.py
@@ -113,7 +113,7 @@
def visit_call(self, node: nodes.Call) -> None:
if self._py36_plus:
called = safe_infer(node.func)
- if not called:
+ if not (called and isinstance(called, (nodes.FunctionDef, nodes.ClassDef))):
return
if called.qname() == "collections.namedtuple":
self.add_message(
diff --git a/tests/functional/ext/code_style/cs_prefer_typing_namedtuple.py b/tests/functional/ext/code_style/cs_prefer_typing_namedtuple.py
index 7b0e7c5..18ca313 100644
--- a/tests/functional/ext/code_style/cs_prefer_typing_namedtuple.py
+++ b/tests/functional/ext/code_style/cs_prefer_typing_namedtuple.py
@@ -7,3 +7,8 @@
namedtuple('SearchMatch', ['els', 'index', 'iterator']) # [prefer-typing-namedtuple]
):
"""Adapted from primer package `music21`."""
+
+
+# Regression test for https://github.com/pylint-dev/pylint/issues/10708
+x = slice(42)
+x() # pylint: disable=not-callable