Add TDD tests for CFG-based type narrowing #4378
Open
+711
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
test_type_narrowing) and fixture (checker_type_narrowing.jac) that will pass once CFG-based type narrowing is implemented in the type checkeris not None,is None+ early return, join-point type restoration, and chained elif narrowingd: Dog = animal) to verify narrowed types, since union member access is currently lenientDetails
The fixture currently produces 11 type errors because the type checker does not use the CFG for flow-sensitive analysis. After narrowing is implemented, 10 of those errors should disappear — only the join-point assignment (
fail: Dog = animalafter an if/else whereanimalisDog | Cat) should remain.Test plan