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

Make by-name types first-class value types #14225

Closed
wants to merge 17 commits into from

Commits on Jan 16, 2022

  1. Avoid inline => in assert

    odersky committed Jan 16, 2022
    Configuration menu
    Copy the full SHA
    582228b View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2022

  1. Configuration menu
    Copy the full SHA
    3908fe2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    937c9d0 View commit details
    Browse the repository at this point in the history
  3. 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 17, 2022
    Configuration menu
    Copy the full SHA
    db05a36 View commit details
    Browse the repository at this point in the history
  4. Avoid using changeOwner in ByNameLambda

    The regular changeOwner can cause cycles in transformations. Transformations like ByNameLambda should use
    the less demanding changeOwnerAfter.
    odersky committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    8fe40ca View commit details
    Browse the repository at this point in the history
  5. Fix handling of by-name default getters

    There was an omission before, but as long as  byname parameters were ExprTypes it did
    not lead to problems.
    odersky committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    63f7dba View commit details
    Browse the repository at this point in the history
  6. Fix typos

    odersky committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    40c6e70 View commit details
    Browse the repository at this point in the history
  7. Drop explicit BYNAME pickles

    Instead, drop <by-name> applications when pickling and reconstitute them
    based on formal parameter types when unpickling.
    odersky committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    8371dfc View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2022

  1. Configuration menu
    Copy the full SHA
    80987df View commit details
    Browse the repository at this point in the history
  2. ByName trees

    odersky committed Jan 18, 2022
    Configuration menu
    Copy the full SHA
    a447a7e View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2022

  1. Move ElimRepeated miniphase to an earlier group

    ByNameLambda needs to run in a group after ElimRepeated since ElimRepeated
    works on ByName arguments but not converted closures, and it sees the arguments
    after transformations by subsequent miniphases in the same group.
    odersky committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    3f51f11 View commit details
    Browse the repository at this point in the history
  2. Separate tree nodes for ByNames

    ByName nodes in arguments are not pickled, which means that we
    can use the same Tasty version as before.
    odersky committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    b7e5e57 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    733e20f View commit details
    Browse the repository at this point in the history
  4. Adapt macro tests to new by-name

    nicolasstucki authored and odersky committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    46c6a6a View commit details
    Browse the repository at this point in the history
  5. Add regression test

    nicolasstucki authored and odersky committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    5f8b24b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2066020 View commit details
    Browse the repository at this point in the history
  7. Handle ByName in init checker

     - Handle combinations of NamedArg and ByName
     - Accept and evaluate any remainign ByName applications
    odersky committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    00091c5 View commit details
    Browse the repository at this point in the history