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

inference: fix bad effects for recursion #51092

Merged
merged 3 commits into from
Sep 1, 2023
Merged

inference: fix bad effects for recursion #51092

merged 3 commits into from
Sep 1, 2023

Commits on Aug 31, 2023

  1. improve effects of typejoin and simplify implementation of Tuple _com…

    …pute_eltype
    
      - Repair definition of Core._foldable_meta
      - Handle Vararg better in eltype
      - Mark has_free_typevars ccall as total
      - Mark tailjoin foldable explicitly also, since it calls typejoin recursively
      - Handle non-constructable Tuple{:a,2} and Tuple{T} types
      - Prepare special code for inlining (improves generic effects too)
      - Only optimize typejoin in concrete eval, not needlessly generating
        specializations otherwise on specific types
    
    The compiler seems better able to deal with this version of
    _compute_eltype, and it does not seem that necessary to form the IdSet.
    vtjnash committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    8307dbf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    00c6ea7 View commit details
    Browse the repository at this point in the history
  3. inference: fix bad effects for recursion

    Effects are not converged, so they need to always be correct, and not a
    bestguess, even during recursion.
    vtjnash committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    15f7db8 View commit details
    Browse the repository at this point in the history