diff --git a/python/testData/pyi/type/comparisonOperatorOverloads/ComparisonOperatorOverloads.py b/python/testData/pyi/type/comparisonOperatorOverloads/ComparisonOperatorOverloads.py new file mode 100644 index 000000000000..0e591f9ad292 --- /dev/null +++ b/python/testData/pyi/type/comparisonOperatorOverloads/ComparisonOperatorOverloads.py @@ -0,0 +1,3 @@ +from lib import MyClass + +expr = 42 < MyClass(42) < MyClass('foo') diff --git a/python/testData/pyi/type/comparisonOperatorOverloads/lib.py b/python/testData/pyi/type/comparisonOperatorOverloads/lib.py new file mode 100644 index 000000000000..aff947dc66ce --- /dev/null +++ b/python/testData/pyi/type/comparisonOperatorOverloads/lib.py @@ -0,0 +1,9 @@ +class MyClass: + def __init__(self, *args): + pass + + def __lt__(self, other): + pass + + def __gt__(self, other): + return True diff --git a/python/testData/pyi/type/comparisonOperatorOverloads/lib.pyi b/python/testData/pyi/type/comparisonOperatorOverloads/lib.pyi new file mode 100644 index 000000000000..4f3cd3eb78cf --- /dev/null +++ b/python/testData/pyi/type/comparisonOperatorOverloads/lib.pyi @@ -0,0 +1,19 @@ +from typing import overload, Generic, TypeVar + +T = TypeVar('T') + + +class MyClass(Generic[T]): + def __init__(self, x: T): + pass + + @overload + def __lt__(self, other: MyClass) -> T: + pass + + @overload + def __lt__(self, other: str) -> bool: + pass + + def __gt__(self, other: int) -> bool: + pass diff --git a/python/testSrc/com/jetbrains/python/pyi/PyiTypeTest.java b/python/testSrc/com/jetbrains/python/pyi/PyiTypeTest.java index d18173e58c12..eeafd607ad3f 100644 --- a/python/testSrc/com/jetbrains/python/pyi/PyiTypeTest.java +++ b/python/testSrc/com/jetbrains/python/pyi/PyiTypeTest.java @@ -142,4 +142,8 @@ public class PyiTypeTest extends PyTestCase { public void testGenericClassDefinitionInSameFile() { doTest("int"); } + + public void testComparisonOperatorOverloads() { + doTest("int"); + } }