@@ -438,6 +438,15 @@ p = TaggedPoint(type='2d', x=42, y=1337)
438438reveal_type(p.get('type')) # E: Revealed type is 'Union[builtins.str, builtins.None]'
439439reveal_type(p.get('x')) # E: Revealed type is 'Union[builtins.int, builtins.None]'
440440reveal_type(p.get('y', 0)) # E: Revealed type is 'builtins.int'
441+ reveal_type(p.get('y', 'hello')) # E: Revealed type is 'Union[builtins.int, builtins.str]'
442+ reveal_type(p.get('y', {})) # E: Revealed type is 'Union[builtins.int, builtins.dict[builtins.None, builtins.None]]'
443+ [builtins fixtures/dict.pyi]
444+
445+ [case testDefaultParameterStillTypeChecked]
446+ from mypy_extensions import TypedDict
447+ TaggedPoint = TypedDict('TaggedPoint', {'type': str, 'x': int, 'y': int})
448+ p = TaggedPoint(type='2d', x=42, y=1337)
449+ p.get('x', 1 + 'y') # E: Unsupported operand types for + ("int" and "str")
441450[builtins fixtures/dict.pyi]
442451
443452[case testCannotGetMethodWithInvalidStringLiteralKey]
@@ -455,14 +464,22 @@ key = 'type'
455464reveal_type(p.get(key)) # E: Revealed type is 'builtins.object*'
456465[builtins fixtures/dict.pyi]
457466
458- [case testChainedGetMethodWithFallback ]
467+ [case testChainedGetMethodWithDictFallback ]
459468from mypy_extensions import TypedDict
460469TaggedPoint = TypedDict('TaggedPoint', {'type': str, 'x': int, 'y': int})
461470PointSet = TypedDict('PointSet', {'first_point': TaggedPoint})
462471p = PointSet(first_point=TaggedPoint(type='2d', x=42, y=1337))
463472reveal_type(p.get('first_point', {}).get('x', 0)) # E: Revealed type is 'builtins.int'
464473[builtins fixtures/dict.pyi]
465474
475+ [case testChainedGetMethodWithNonDictFallback]
476+ from mypy_extensions import TypedDict
477+ TaggedPoint = TypedDict('TaggedPoint', {'type': str, 'x': int, 'y': int})
478+ PointSet = TypedDict('PointSet', {'first_point': TaggedPoint})
479+ p = PointSet(first_point=TaggedPoint(type='2d', x=42, y=1337))
480+ p.get('first_point', 32).get('x', 0) # E: Some element of union has no attribute "get"
481+ [builtins fixtures/dict.pyi]
482+
466483[case testDictGetMethodStillCallable]
467484from typing import Callable
468485from mypy_extensions import TypedDict
0 commit comments