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

Short-cut T: Sized trait selection for ADTs #33138

Merged
merged 12 commits into from
May 6, 2016

Commits on May 3, 2016

  1. Short-cut Sized matching on ADTs

    Put a constraint type on every ADT def, such that the ADT def is sized iff the constraint
    type is, and use that in selection. This ignores types that are obviously sized.
    
    This improves typeck performance by ~15%.
    Ariel Ben-Yehuda authored and arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    73f39a0 View commit details
    Browse the repository at this point in the history
  2. add comments and tests

    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    4bcabbd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    babb5df View commit details
    Browse the repository at this point in the history
  4. require the non-last elements of a tuple to be Sized

    This requirement appears to be missing from RFC1214, but is clearly
    necessary for translation. The last field of a tuple/enum remains in
    a state of limbo, compiling but causing an ICE when it is used - we
    should eventually fix that somehow.
    
    this is a [breaking-change] - a soundness fix - and requires a
    crater run.
    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    0a6dfc5 View commit details
    Browse the repository at this point in the history
  5. require the existential bounds of an object type to be object-safe

    This is required, as Copy and Sized are object-unsafe.
    
    As a soundness fix, this is a [breaking-change]
    
    Fixes rust-lang#32963
    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    2f8f256 View commit details
    Browse the repository at this point in the history
  6. fix breaking changes

    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    6fc19ad View commit details
    Browse the repository at this point in the history
  7. address review comments

    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    05f1a05 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5876b4b View commit details
    Browse the repository at this point in the history
  9. change the newly-added errors to warnings

    this commit should be reverted after a release cycle
    arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    6057a7f View commit details
    Browse the repository at this point in the history
  10. stop using commit_if_ok where no errors can happen

    Ariel Ben-Yehuda authored and arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    62db786 View commit details
    Browse the repository at this point in the history
  11. stop dropping impls from cause backtraces

    Ariel Ben-Yehuda authored and arielb1 committed May 3, 2016
    Configuration menu
    Copy the full SHA
    6c88384 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2016

  1. fixes

    arielb1 committed May 4, 2016
    Configuration menu
    Copy the full SHA
    238e4ee View commit details
    Browse the repository at this point in the history