Skip to content
Permalink
Tree: 647ed20e43
Commits on Aug 7, 2019
  1. Auto merge of #63280 - lzutao:update-clippy, r=Mark-Simulacrum

    bors committed Aug 7, 2019
    submodules: Update clippy
    
    r? @Manishearth
    Fixes clippy toolstate in #63228 (comment)
  2. Auto merge of #61919 - alexreg:fix-atb-1, r=nikomatsakis

    bors committed Aug 7, 2019
    Fix for "ambiguous associated type" issue with ATBs
    
    Fixes #61752.
    
    r? @nikomatsakis
    
    CC @Centril
  3. submodules: Update clippy

    lzutao committed Aug 7, 2019
  4. Auto merge of #63152 - estebank:big-array, r=oli-obk

    bors committed Aug 7, 2019
    Always error on `SizeOverflow` during mir evaluation
    
    Fix #55878, fix #25116.
    
    r? @oli-obk
  5. Auto merge of #63341 - Centril:rollup-hkhxahb, r=Centril

    bors committed Aug 7, 2019
    Rollup of 9 pull requests
    
    Successful merges:
    
     - #63034 (Fix generator size regressions due to optimization)
     - #63035 (Use MaybeUninit to produce more correct layouts)
     - #63163 (add a pair of whitespace after remove parentheses)
     - #63294 (tests for async/await drop order)
     - #63307 (don't ignore mir_dump folder)
     - #63308 (PlaceRef's base is already a reference)
     - #63310 (Tests around moving parts of structs and tuples across await points)
     - #63314 (doc: the content has since been moved to the guide)
     - #63333 (Remove unnecessary features from compiler error code list)
    
    Failed merges:
    
    r? @ghost
Commits on Aug 6, 2019
  1. review comment: reword test comment

    estebank committed Aug 6, 2019
  2. Rollup merge of #63333 - jethrogb:jb/error-codes-features, r=Mark-Sim…

    Centril committed Aug 6, 2019
    …ulacrum
    
    Remove unnecessary features from compiler error code list
  3. Rollup merge of #63314 - tshepang:update-src-readme, r=matthewjasper

    Centril committed Aug 6, 2019
    doc: the content has since been moved to the guide
  4. Rollup merge of #63310 - gorup:partial-moves, r=cramertj

    Centril committed Aug 6, 2019
    Tests around moving parts of structs and tuples across await points
    
    r? cramertj
    
    Per the [dropbox paper](https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiR3vlp1s_Kw0yzWZ1sWMnaIAQ-nMyZGrra7dz9KcFRMLKJy) about more tests, it appears there are some tests wanted around local variables (under the section ["Dynamic semantics"](https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiR3vlp1s_Kw0yzWZ1sWMnaIAg-nMyZGrra7dz9KcFRMLKJy#:uid=122335511260129643493892&h2=Dynamic-semantics)). Here is one commit, and I can probably get code up for other scenarios listed there, although I may not have the full background to know what is being targeted by the tests. Please assist me if I'm off course, thanks!
    
    ---
    - Executed all 4 new tests
    - Executed `tidy` command
  5. Rollup merge of #63308 - spastorino:place-ref-base-is-ref, r=oli-obk

    Centril committed Aug 6, 2019
    PlaceRef's base is already a reference
    
    r? @oli-obk
  6. Rollup merge of #63307 - RalfJung:gitignore, r=alexcrichton

    Centril committed Aug 6, 2019
    don't ignore mir_dump folder
    
    I dumped some MIR and wondered why `git status` wouldn't show the tree as dirty, reminding me to clean up after myself. Turns out this folder was explicitly gitignored. I don't think it should be.
    
    If someone doesn't want to clean up that way, they can add it to `.git/info/exclude`.
    
    (That file seems like it could need some general cleanup, honestly, but that's for another day.)
  7. Rollup merge of #63294 - alsuren:async-tests, r=cramertj

    Centril committed Aug 6, 2019
    tests for async/await drop order
    
    This is just me helping out with #62121 where I can.
    
    I'm also going to use this as a public place to collect my thoughts about what has already been done and what hasn't (adding comments to the dropbox paper doc was quickly getting spammy).
    
    I've tried to keep my commit messages similar to the line items on https://paper.dropbox.com/doc/async.await-Call-for-Tests--AiKouT0L41mSnK1741s~TiiRAg-nMyZGrra7dz9KcFRMLKJy as possible.
    
    A bunch of my tests are likely to be either redundant with other tests, or lower quality than other tests that people are writing. A reasonable approach might be to tell me which commits you want to keep and I'll throw away the rest of them.
    
    The part from the dropbox paper doc that I'm concentrating on here is:
    (items marked with `?` are ones that I can't immediately think of how to test, so I will leave for other people. Items with checkboxes are things that I have done or will try to do next)
    
    ### Dynamic semantics
    - `async`/`await` with unusual locals:
        - ? partially uninhabited
        - ? conditionally initialized
        - ~drop impls~ already done in src/test/ui/async-await/drop-order/*
        - ? nested drop impls
        - ~partially moved (e.g., `let x = (vec![], vec![]); drop(x.0); foo.await; drop(x.1);`)~ see  #63310
    - Control flow:
        - basic
        - complex
    - [x] `.await` while holding variables of different sizes
    - (possibly) drop order
        - [x] including drop order for locals when a future is dropped part-way through execution
             - Parameters' drop order is covered in my commit f40190a
        - ~An async fn version of `dynamic-drop.rs`~
            - already done by matthewjasper in https://github.com/rust-lang/rust/pull/62193/files
    - ? interaction with const eval, promoteds, and temporaries
    - [x] drop the resulting future and check that local variables and parameters are dropped in the expected order (interaction with cancellation, in other words)
        - also in f40190a
    
    Explanation of commits:
    
    * 0a1bdd4 is the simplest place I could think of to explicitly test `.await` while holding variables of different sizes. I'm pretty sure that this will end up being redundant with something else, so I'm happy to drop it.
    * f40190a is a copy-paste from `drop-order-for-async-fn-parameters.rs` with `NeverReady.await` dumped on the end of each testcase.
        * Normally I don't like copy-paste-based tests, but `drop-order-for-async-fn-parameters-by-ref-binding.rs` is also copy-paste, so I thought it might be okay.
        * [x] I'm a bit sad that this doesn't cover non-parameter locals, but I think it should be easy enough to extend in that direction, so I might have a crack at that tomorrow.
    * c4940e0 makes a bunch of local variables and moves them into either `{}` blocks or `async move {}` blocks, checking for any surprising differences.
        * I have tried to give the test functions descriptive names
        * I have not duplicated the tests for methods with/without self.
        * I think that all of these tests could be rewritten to be clearer if I could write down the expected drop order next to each test.
  8. Rollup merge of #63163 - bravomikekilo:master, r=cramertj

    Centril committed Aug 6, 2019
    add a pair of whitespace after remove parentheses
    
    fix [issue-63156](#63156).
    add a pair of whitespace after remove parentheses.
  9. Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r…

    Centril committed Aug 6, 2019
    …=cramertj
    
    Fix generator size regressions due to optimization
    
    I tested the generator optimizations in #60187 and #61922 on the Fuchsia
    build, and noticed that some small generators (about 8% of the async fns
    in our build) increased in size slightly.
    
    This is because in #60187 we split the fields into two groups, a
    "prefix" non-overlap region and an overlap region, and lay them out
    separately. This can introduce unnecessary padding bytes between the two
    groups.
    
    In every single case in the Fuchsia build, it was due to there being
    only a single variant being used in the overlap region. This means that
    we aren't doing any overlapping, period. So it's better to combine the
    two regions into one and lay out all the fields at once, which is what
    this change does.
    
    r? @cramertj
    cc @eddyb @Zoxc
  10. Fix generator size regressions due to optimization

    tmandry committed Jul 27, 2019
    I tested the generator optimizations in #60187 and #61922 on the Fuchsia
    build, and noticed that some small generators (about 8% of the async fns
    in our build) increased in size slightly.
    
    This is because in #60187 we split the fields into two groups, a
    "prefix" non-overlap region and an overlap region, and lay them out
    separately. This can introduce unnecessary padding bytes between the two
    groups.
    
    In every single case in the Fuchsia build, it was due to there being
    only a single variant being used in the overlap region. This means that
    we aren't doing any overlapping, period. So it's better to combine the
    two regions into one and lay out all the fields at once, which is what
    this change does.
  11. Auto merge of #63320 - RalfJung:miri, r=oli-obk

    bors committed Aug 6, 2019
    bump Miri
    
    r? @oli-obk
    
    Fixes #63219.
  12. review comments

    estebank committed Aug 6, 2019
  13. Remove unnecessary features from compiler error code list

    Jethro Beekman
    Jethro Beekman committed Aug 6, 2019
  14. move error with diverging output to compile-fail

    estebank committed Aug 6, 2019
  15. Auto merge of #61515 - shepmaster:boxed-slice-to-array, r=cramertj

    bors committed Aug 6, 2019
    Add implementations for converting boxed slices into boxed arrays
    
    This mirrors the implementations of reference slices into arrays.
    
    # Discussion
    
    - [x] Should we use const generics? ([probably not](#61515 (comment)))
    - [ ] [What's the safety rationale here](#61515 (comment))?
    - [ ] [Should the errors return the original object](#61515 (comment))?
    
    # Remaining
    
    - [ ] Implement `Error`
    - [ ] Create a tracking issue
  16. test drop order for locals when a future is dropped part-way through …

    alsuren committed Aug 6, 2019
    …execution
  17. Auto merge of #63328 - Centril:rollup-482ujaf, r=Centril

    bors committed Aug 6, 2019
    Rollup of 6 pull requests
    
    Successful merges:
    
     - #62459 (Use internal iteration in the Sum and Product impls of Result and Option)
     - #62821 (Not listed methods)
     - #62837 (Fix theme picker blur handler: always hide instead of switching)
     - #63286 (Replace error callback with Result)
     - #63296 (Deduplicate rustc_demangle in librustc_codegen_llvm)
     - #63298 (assume_init: warn about valid != safe)
    
    Failed merges:
    
    r? @ghost
  18. Rollup merge of #63298 - RalfJung:assume_init, r=Mark-Simulacrum,Centril

    Centril committed Aug 6, 2019
    assume_init: warn about valid != safe
    
    We have this warning in the type-level docs, but it seems worth repeating it on the function.
  19. Rollup merge of #63296 - alexcrichton:deduplicate-demangle, r=Mark-Si…

    Centril committed Aug 6, 2019
    …mulacrum
    
    Deduplicate rustc_demangle in librustc_codegen_llvm
    
    This commit removes the crates.io dependency of `rustc-demangle` from
    `rustc_codegen_llvm`. This crate is actually already pulled in to part
    of the `librustc_driver` build and with the upcoming pipelining
    implementation in Cargo it causes build issues if `rustc-demangle` is
    left to its own devices.
    
    This is not currently required, but once pipelining is enabled for
    rustc's own build it will be required to build correctly.
  20. Rollup merge of #63286 - Mark-Simulacrum:resolve-no-cb, r=petrochenkov

    Centril committed Aug 6, 2019
    Replace error callback with Result
    
    r? @petrochenkov
  21. Rollup merge of #62837 - Kinrany:patch-1, r=GuillaumeGomez

    Centril committed Aug 6, 2019
    Fix theme picker blur handler: always hide instead of switching
    
    Fixes a minor bug in UI generated by rustdoc.
    
    For example, this page: https://doc.rust-lang.org/std/
    
    Reproduction steps:
    1. Click the theme picker twice
       * The list of themes will be shown and then hidden
    2. Click anywhere else
       * The list of themes will be show again, which is unexpected
    
    The bug was caused by blur event handler toggling the state of the element instead of always hiding it regardless of the current state.
  22. Rollup merge of #62459 - timvermeulen:result_sum_internal_iteration, …

    Centril committed Aug 6, 2019
    …r=scottmcm
    
    Use internal iteration in the Sum and Product impls of Result and Option
    
    This PR adds internal iteration to the `ResultShunt` iterator type underlying the `Sum` and `Product` impls of `Result`. I had to change `ResultShunt` to hold a mutable reference to an error instead, similar to `itertools::ProcessResults`, in order to be able to pass the `ResultShunt` itself by value (which is necessary for internal iteration).
    
    `ResultShunt::process` can unfortunately no longer be an associated function because that would make it generic over the lifetime of the error reference, which wouldn't work, so I turned it into the free function `process_results`.
    
    I removed the `OptionShunt` type and forwarded the `Sum` and `Product` impls of `Option` to their respective impls of `Result` instead, to avoid having to repeat the internal iteration logic.
  23. fixup! test drop order for parameters when a future is dropped part-w…

    alsuren committed Aug 6, 2019
    …ay through execution
  24. clarify

    RalfJung committed Aug 6, 2019
  25. Auto merge of #63319 - Centril:rollup-d89rmey, r=Centril

    bors committed Aug 6, 2019
    Rollup of 14 pull requests
    
    Successful merges:
    
     - #61457 (Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take})
     - #63017 (Remove special code-path for handing unknown tokens)
     - #63184 (Explaining the reason why validation is performed in to_str of path.rs)
     - #63230 (Make use of possibly uninitialized data [E0381] a hard error)
     - #63260 (fix UB in a test)
     - #63264 (Revert "Rollup merge of #62696 - chocol4te:fix_#62194, r=estebank")
     - #63272 (Some more libsyntax::attr cleanup)
     - #63285 (Remove leftover AwaitOrigin)
     - #63287 (Don't store &Span)
     - #63293 (Clarify align_to's requirements and obligations)
     - #63295 (improve align_offset docs)
     - #63299 (Make qualify consts in_projection use PlaceRef)
     - #63312 (doc: fix broken sentence)
     - #63315 (Fix #63313)
    
    Failed merges:
    
    r? @ghost
  26. Add rustfix test and fix test name.

    bravomikekilo committed Aug 6, 2019
  27. be clear that 1-init Vec being valid (but not safe) is not a stable g…

    RalfJung committed Aug 6, 2019
    …uarantee
  28. bump Miri

    RalfJung committed Aug 6, 2019
  29. Rollup merge of #63315 - rust-lang:fix-63313, r=alexreg

    Centril committed Aug 6, 2019
    Fix #63313
    
    Fixes #63313
    
    r? @alexreg
Older
You can’t perform that action at this time.