✨ feat(mq-check): add dead code detection and improve type inference#1481
Merged
✨ feat(mq-check): add dead code detection and improve type inference#1481
Conversation
- Introduce `Type::Never` (bottom type) to represent unreachable code paths; `subtract()` on a union returns `Never` when all members are eliminated - Add `TypeError::UnreachableCode` reported when a branch is provably dead: - then-branch: concrete variable type doesn't match the predicate - else-branch: all union members are exhausted by the predicate - Fix Union-Union unification to use symmetric all-member matching, preventing spurious "type mismatch" errors when both sides carry the same union type through separate branches - Infer `while` loop return type as `Union(body, None)` since the condition may be false on the first check; bare `break` contributes `None` as well - Skip `SymbolKind::Parameter` in `detect_dead_then_branch` — parameters are polymorphic so predicate checks on them must not be flagged as dead - Add comprehensive tests for dead code detection, parameter polymorphism (no false positives on `contains`/`map`/`flat_map`-style functions), and `skip_while`/`take_while` runtime behavior
… new constraints and test cases
… for string multiplication
…functions and add related tests
…se flag for empty lines and comments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.