From cef122333c26c65a1975c03cce2b44873f3f8434 Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Sat, 28 Apr 2018 17:44:36 +0300 Subject: [PATCH] Highlight useless `__eq__` for attrs with default `cmp` parameter (PY-26354) --- .../jetbrains/python/codeInsight/stdlib/PyDataclasses.kt | 2 +- .../PyDataclassInspection/attrsUselessInitReprStrEq.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/codeInsight/stdlib/PyDataclasses.kt b/python/src/com/jetbrains/python/codeInsight/stdlib/PyDataclasses.kt index 3b216f6dfab3..7c7932ed360f 100644 --- a/python/src/com/jetbrains/python/codeInsight/stdlib/PyDataclasses.kt +++ b/python/src/com/jetbrains/python/codeInsight/stdlib/PyDataclasses.kt @@ -101,7 +101,7 @@ private class PyDataclassParametersBuilder(private val type: PyDataclassParamete private var init = DEFAULT_INIT private var repr = DEFAULT_REPR private var eq = DEFAULT_EQ - private var order = DEFAULT_ORDER + private var order = if (type == PyDataclassParameters.Type.ATTRS) DEFAULT_EQ else DEFAULT_ORDER private var unsafeHash = DEFAULT_UNSAFE_HASH private var frozen = DEFAULT_FROZEN diff --git a/python/testData/inspections/PyDataclassInspection/attrsUselessInitReprStrEq.py b/python/testData/inspections/PyDataclassInspection/attrsUselessInitReprStrEq.py index 38b8a22457da..74e6a002b681 100644 --- a/python/testData/inspections/PyDataclassInspection/attrsUselessInitReprStrEq.py +++ b/python/testData/inspections/PyDataclassInspection/attrsUselessInitReprStrEq.py @@ -46,6 +46,14 @@ class B2: def __init__(self): print("ok") + +@attr.dataclass +class C1: + c: int = 1 + + def __eq__(self, other): + return "eq1" + print(repr(A())) print(str(A())) print(A() == A())