()
| 347 | |
| 348 | @pytest.mark.mypy_testing |
| 349 | def mypy_int_typing() -> None: |
| 350 | class T(HasTraits): |
| 351 | i: Int[int, int] = Int(42).tag(sync=True) |
| 352 | oi: Int[int | None, int | None] = Int(42, allow_none=True).tag(sync=True) |
| 353 | |
| 354 | t = T() |
| 355 | reveal_type(Int(True)) # R: traitlets.traitlets.Int[builtins.int, builtins.int] |
| 356 | reveal_type(Int(True).tag(sync=True)) # R: traitlets.traitlets.Int[builtins.int, builtins.int] |
| 357 | reveal_type( |
| 358 | Int( # R: traitlets.traitlets.Int[builtins.int | None, builtins.int | None] |
| 359 | None, allow_none=True |
| 360 | ) |
| 361 | ) |
| 362 | reveal_type( |
| 363 | Int( # R: traitlets.traitlets.Int[builtins.int | None, builtins.int | None] |
| 364 | None, allow_none=True |
| 365 | ).tag(sync=True) |
| 366 | ) |
| 367 | reveal_type(T.i) # R: traitlets.traitlets.Int[builtins.int, builtins.int] |
| 368 | reveal_type(t.i) # R: builtins.int |
| 369 | reveal_type(t.oi) # R: builtins.int | None |
| 370 | reveal_type(T.i) # R: traitlets.traitlets.Int[builtins.int, builtins.int] |
| 371 | reveal_type( |
| 372 | T.oi # R: traitlets.traitlets.Int[builtins.int | None, builtins.int | None] |
| 373 | ) |
| 374 | t.i = "foo" # E: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment] |
| 375 | t.i = None # E: Incompatible types in assignment (expression has type "None", variable has type "int") [assignment] |
| 376 | t.i = 1.2 # E: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment] |
| 377 | |
| 378 | |
| 379 | @pytest.mark.mypy_testing |
nothing calls this directly
no test coverage detected
searching dependent graphs…