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

Rework ElimByName #14295

Merged
merged 10 commits into from
Jan 26, 2022
Merged

Rework ElimByName #14295

merged 10 commits into from
Jan 26, 2022

Commits on Jan 20, 2022

  1. Move elim repeated earlier

    This is a test
    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    c3b37fd View commit details
    Browse the repository at this point in the history
  2. Update analyzer plugin

    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    5deb2de View commit details
    Browse the repository at this point in the history
  3. Fix import in analyzer plugin

    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    5a328dd View commit details
    Browse the repository at this point in the history
  4. Trial: New ElimByName phase

    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    81cbe32 View commit details
    Browse the repository at this point in the history
  5. Install the new ElimByName in place of ByNameClosures

    ... and drop the old ElimByName.
    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    bf937ed View commit details
    Browse the repository at this point in the history
  6. Specialize byname functions

    I tried to extend specialization to all context functions, not just ones of 0 arity.
    But that runs into problems for dependent context functions, since the necessary casts
    get complicated. Since context functions over primitive types are an anti-pattern anyway
    I don't think we need to optimize this case, after all.
    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    3dc3af2 View commit details
    Browse the repository at this point in the history
  7. Fix typos in comment

    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    f208079 View commit details
    Browse the repository at this point in the history
  8. Make isSubArg symmetric again

    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    59734f5 View commit details
    Browse the repository at this point in the history
  9. Reorganize RefChecks tasks

     - Split out forward reference checks and cross version (i.e. experimental/deprecated) checks
       into their own miniphases. These have nothing to do with the core tasks of RefChecks.
     - Move RefChecks earlier in the pipeline, so that it is not affected by ElimByName's questionable
       type manipulations.
    odersky committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    368cca1 View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2022

  1. Fix "have same type after erasure" check

    Perform the overriding checks after elimByName. I observed some problem with
    catsEffect2, where a super accessor method with a `() ?=> T` parameter was compared with a
    corresponding super accessor method with a `=> T` parameter. One of these methods was generated
    before elimByName, the other after. So comparing them at phase elimRepeated + 1 gave two different
    types. The problem is fixed by comparing after elimByName, which means that the type of the second
    method is converted to match the first.
    odersky committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    a9ad052 View commit details
    Browse the repository at this point in the history