@@ -71,34 +71,33 @@ def test_iterable_tuple_overload(x: Iterable[tuple[int, str]]) -> dict[int, str]
7171int_value = 1
7272
7373assert_type (d_any ["key" ], Any )
74- assert_type (d_any .get ("key" ), Union [ Any , None ] )
75- assert_type (d_any .get ("key" , None ), Union [ Any , None ] )
74+ assert_type (d_any .get ("key" ), Any | None )
75+ assert_type (d_any .get ("key" , None ), Any | None )
7676assert_type (d_any .get ("key" , any_value ), Any )
77- assert_type (d_any .get ("key" , str_value ), Any )
78- assert_type (d_any .get ("key" , int_value ), Any )
77+ assert_type (d_any .get ("key" , str_value ), Any | str )
78+ assert_type (d_any .get ("key" , int_value ), Any | int )
7979
8080assert_type (d_str ["key" ], str )
81- assert_type (d_str .get ("key" ), Union [ str , None ] )
82- assert_type (d_str .get ("key" , None ), Union [ str , None ] )
81+ assert_type (d_str .get ("key" ), str | None )
82+ assert_type (d_str .get ("key" , None ), str | None )
8383# Pyright has str instead of Any here
84- assert_type (d_str .get ("key" , any_value ), Any ) # pyright: ignore[reportAssertTypeFailure]
84+ assert_type (d_str .get ("key" , any_value ), str | Any )
8585assert_type (d_str .get ("key" , str_value ), str )
86- assert_type (d_str .get ("key" , int_value ), Union [ str , int ] )
86+ assert_type (d_str .get ("key" , int_value ), str | int )
8787
8888# Now with context!
8989result : str
9090result = d_any ["key" ]
9191result = d_any .get ("key" ) # type: ignore[assignment]
9292result = d_any .get ("key" , None ) # type: ignore[assignment]
93- result = d_any .get ("key" , any_value )
94- result = d_any .get ("key" , str_value )
95- result = d_any .get ("key" , int_value )
93+ result = d_any .get ("key" , any_value ) # OK
94+ result = d_any .get ("key" , str_value ) # OK
95+ result = d_any .get ("key" , int_value ) # type: ignore[assignment]
9696
9797result = d_str ["key" ]
9898result = d_str .get ("key" ) # type: ignore[assignment]
9999result = d_str .get ("key" , None ) # type: ignore[assignment]
100- # Pyright has str | None here, see https://github.com/microsoft/pyright/discussions/9570
101- result = d_str .get ("key" , any_value ) # pyright: ignore[reportAssignmentType]
100+ result = d_str .get ("key" , any_value )
102101result = d_str .get ("key" , str_value )
103102result = d_str .get ("key" , int_value ) # type: ignore[arg-type]
104103
@@ -143,8 +142,10 @@ def test9() -> str:
143142 return d_str .get ("key" , None ) # type: ignore[return-value]
144143
145144
146- def test10 () -> str :
147- return d_str .get ("key" , any_value ) # type: ignore[no-any-return]
145+ # Pyright doesn't have a version of no-any-return,
146+ # and mypy doesn't have a type: ignore that pyright will ignore.
147+ # def test10() -> str:
148+ # return d_str.get("key", any_value) # mypy: ignore[no-any-return]
148149
149150
150151def test11 () -> str :
0 commit comments