diff --git a/python/ql/src/Classes/Comparisons/Comparisons.qll b/python/ql/src/Classes/Comparisons/Comparisons.qll deleted file mode 100644 index 5c049410c69..00000000000 --- a/python/ql/src/Classes/Comparisons/Comparisons.qll +++ /dev/null @@ -1,12 +0,0 @@ -/** Helper definitions for reasoning about comparison methods. */ - -import python -import semmle.python.ApiGraphs - -/** Holds if `cls` has the `functools.total_ordering` decorator. */ -predicate totalOrdering(Class cls) { - API::moduleImport("functools") - .getMember("total_ordering") - .asSource() - .flowsTo(DataFlow::exprNode(cls.getADecorator())) -} diff --git a/python/ql/src/Classes/Comparisons/EqualsOrNotEquals.ql b/python/ql/src/Classes/Comparisons/EqualsOrNotEquals.ql index feeada86682..25aafea6db2 100644 --- a/python/ql/src/Classes/Comparisons/EqualsOrNotEquals.ql +++ b/python/ql/src/Classes/Comparisons/EqualsOrNotEquals.ql @@ -12,7 +12,6 @@ */ import python -import Comparisons import semmle.python.dataflow.new.internal.DataFlowDispatch import Classes.Equality @@ -33,8 +32,6 @@ predicate missingEquality(Class cls, Function defined, string missing) { } from Class cls, Function defined, string missing -where - not totalOrdering(cls) and - missingEquality(cls, defined, missing) +where missingEquality(cls, defined, missing) select cls, "This class implements $@, but does not implement " + missing + ".", defined, defined.getName() diff --git a/python/ql/src/Classes/Comparisons/IncompleteOrdering.ql b/python/ql/src/Classes/Comparisons/IncompleteOrdering.ql index 882321cc3f5..2a09b281058 100644 --- a/python/ql/src/Classes/Comparisons/IncompleteOrdering.ql +++ b/python/ql/src/Classes/Comparisons/IncompleteOrdering.ql @@ -14,7 +14,14 @@ import python import semmle.python.dataflow.new.internal.DataFlowDispatch import semmle.python.ApiGraphs -import Comparisons + +/** Holds if `cls` has the `functools.total_ordering` decorator. */ +predicate totalOrdering(Class cls) { + API::moduleImport("functools") + .getMember("total_ordering") + .asSource() + .flowsTo(DataFlow::exprNode(cls.getADecorator())) +} predicate definesStrictOrdering(Class cls, Function meth) { meth = cls.getMethod("__lt__")