Skip to content

Commit b5aa42d

Browse files
committed
More nested class test cases
1 parent 8ba0b75 commit b5aa42d

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test-data/unit/fine-grained.test

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -760,3 +760,56 @@ def f(x: int) -> None: pass
760760
[out]
761761
==
762762
main:4: error: Too few arguments for "f"
763+
764+
[case testNestedClassMethodSignatureChanges]
765+
from m import A
766+
767+
def f(x: A.B) -> None:
768+
x.g()
769+
[file m.py]
770+
class A:
771+
class B:
772+
def g(self) -> None: pass
773+
[file m.py.2]
774+
class A:
775+
class B:
776+
def g(self, x: int) -> None: pass
777+
[out]
778+
==
779+
main:4: error: Too few arguments for "g" of "B"
780+
781+
[case testNestedClassAttributeTypeChanges]
782+
from m import A
783+
784+
def f(x: A.B) -> None:
785+
z = 1
786+
z = x.y
787+
[file m.py]
788+
class A:
789+
class B:
790+
def g(self) -> None:
791+
self.y = 1
792+
[file m.py.2]
793+
class A:
794+
class B:
795+
def g(self) -> None:
796+
self.y = ''
797+
[out]
798+
==
799+
main:5: error: Incompatible types in assignment (expression has type "str", variable has type "int")
800+
801+
[case testReprocessMethodInNestedClass]
802+
from m import f
803+
804+
class A:
805+
class B:
806+
def g(self) -> None:
807+
x = 1
808+
x = f()
809+
[file m.py]
810+
def f() -> int: pass
811+
[file m.py.2]
812+
def f() -> str: pass
813+
[out]
814+
==
815+
main:7: error: Incompatible types in assignment (expression has type "str", variable has type "int")

0 commit comments

Comments
 (0)