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

Handle TupleXXL in match analysis #19212

Merged
merged 3 commits into from
Dec 7, 2023
Merged

Commits on Dec 6, 2023

  1. Handle TupleXXL in match analysis

    There's a number of problems with the match analysis of TupleXXL.
    Of course, they manifest as (in)exhaustivity and (un)reachability
    warnings.
    
    Reachability suffered by the problem that a large generic tuple
    scrutinee type wasn't considered extractable by the TupleXXL extractor
    that Typer associates the extractor pattern with.  That was solved by
    special handling in SpaceEngine's isSubType.
    
    Exhaustivity suffered by a variety of problems, again stemming from the
    disconnect between the TupleXXL pattern type and the large generic tuple
    scrutinee (or component) type.  That was solved by special handling in
    exhaustivityCheckable to ignore large generic tuple scrutinees.
    
    That then highlighted an irrefutable failure (checkIrrefutable), which
    also needed to be taught that extra large generic tuples do conform to
    TupleXXL extractors type, afterwhich SpaceEngine isIrrefutable needed
    special handling to consider TuplXXL irrefutable.
    dwijnand committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    e56b75e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5bafaac View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2023

  1. Configuration menu
    Copy the full SHA
    771b866 View commit details
    Browse the repository at this point in the history