Skip to content

Commit

Permalink
Add regression test for recently fixed deque.copy() bug (#12648)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexWaygood committed Apr 21, 2022
1 parent 9477bd8 commit 6eac240
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions test-data/unit/check-selftype.test
Original file line number Diff line number Diff line change
Expand Up @@ -1220,3 +1220,21 @@ class ThingCollection(Generic[T]):
def do_thing(self) -> None:
self.index.update((idx, c) for idx, (k, c) in enumerate(self.collection))
[builtins fixtures/tuple.pyi]

[case testDequeReturningSelfFromCopy]
# Tests a bug with generic self types identified in issue #12641
from typing import Generic, Sequence, TypeVar

T = TypeVar("T")
Self = TypeVar("Self")

class deque(Sequence[T]):
def copy(self: Self) -> Self: ...

class List(Sequence[T]): ...

class Test(Generic[T]):
def test(self) -> None:
a: deque[List[T]]
# previously this failed with 'Incompatible types in assignment (expression has type "deque[List[List[T]]]", variable has type "deque[List[T]]")'
b: deque[List[T]] = a.copy()

0 comments on commit 6eac240

Please sign in to comment.