Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate deep disjunctive patterns. #830

Merged
merged 3 commits into from
Aug 8, 2024

Conversation

maximebuyse
Copy link
Contributor

Closes #463.

We add a new monomorphic phase that lifts up all deep disjunctive patterns so that the resulting patterns may only contain shallow disjunctions.

For example the pattern (1 | 2, Some(3 | 4)) is transformed as (1, Some(3)) | (1, Some(4)) | (2, Some(3)) | (2, Some(4))

@maximebuyse maximebuyse requested a review from W95Psp August 7, 2024 14:36
@maximebuyse maximebuyse force-pushed the eliminate-shallow-disjunctive-patterns branch from a6ab7b7 to 8cff64a Compare August 8, 2024 07:49
@W95Psp W95Psp enabled auto-merge August 8, 2024 07:55
@W95Psp W95Psp added this pull request to the merge queue Aug 8, 2024
Merged via the queue into main with commit b9c7a44 Aug 8, 2024
13 checks passed
@W95Psp W95Psp deleted the eliminate-shallow-disjunctive-patterns branch August 8, 2024 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

(deep) disjunctive patterns in backend that don't support them (e.g. F*)
2 participants