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

Rollup of 14 pull requests #73744

Closed
wants to merge 34 commits into from

Commits on May 26, 2020

  1. Add a fast path for std::thread::panicking.

    This is done by adding a global atomic variable (non-TLS) that counts how many threads are panicking. In order to check if the current thread is panicking, this variable is read and, if it is zero, no thread (including the one where `panicking` is being called) is panicking and `panicking` can return `false` immediately without needing to access TLS. If the global counter is not zero, the local counter is accessed from TLS to check if the current thread is panicking.
    eduardosm committed May 26, 2020
    Configuration menu
    Copy the full SHA
    f03cf99 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2020

  1. Configuration menu
    Copy the full SHA
    e85df08 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2020

  1. Implement slice_strip feature

    tesuji committed Jun 16, 2020
    Configuration menu
    Copy the full SHA
    560a996 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2020

  1. Configuration menu
    Copy the full SHA
    8a816ca View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2020

  1. Document the mod keyword

    poliorcetics committed Jun 22, 2020
    Configuration menu
    Copy the full SHA
    9766a93 View commit details
    Browse the repository at this point in the history
  2. Document the mut keyword

    poliorcetics committed Jun 22, 2020
    Configuration menu
    Copy the full SHA
    3c46e36 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ef24faf View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2020

  1. Record span of const kw in GenericParamKind

    Context: this is needed to fix rust-lang/rustfmt#4263,
    which currently records the span of a const generic param incorrectly
    because the location of the `const` kw is not known.
    
    I am not sure how to add tests for this; any guidance in how to do so
    would be appreciated 🙂
    ayazhafiz committed Jun 23, 2020
    Configuration menu
    Copy the full SHA
    86f6c0e View commit details
    Browse the repository at this point in the history
  2. Fix ptr doc warnings.

    ehuss committed Jun 23, 2020
    Configuration menu
    Copy the full SHA
    9bb414f View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2020

  1. Document the return keyword

    Apply suggestions from code review
    
    Co-authored-by: Josh Triplett <josh@joshtriplett.org>
    poliorcetics and joshtriplett committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    d8ea10c View commit details
    Browse the repository at this point in the history
  2. Implement intrinsic

    doctorn committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    d36d351 View commit details
    Browse the repository at this point in the history
  3. Fix tests

    doctorn committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    c2dfc25 View commit details
    Browse the repository at this point in the history
  4. Fix tests

    doctorn committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    4931996 View commit details
    Browse the repository at this point in the history
  5. Make std::panicking::panic_count::is_zero inline and move the slow …

    …path into a separate cold function.
    eduardosm committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    771a1d8 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2020

  1. Provide suggestions for some moved value errors

    When encountering an used moved value where the previous move happened
    in a `match` or `if let` pattern, suggest using `ref`. Fix rust-lang#63988.
    
    When encountering a `&mut` value that is used in multiple iterations of
    a loop, suggest reborrowing it with `&mut *`. Fix rust-lang#62112.
    estebank committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    520461f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3d09017 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    eb6d9a4 View commit details
    Browse the repository at this point in the history
  4. Update UI test

    GuillaumeGomez committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    33302fa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    25e864e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    77b0ed7 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2020

  1. Rollup merge of rust-lang#72617 - eduardosm:panicking, r=Amanieu

    Add a fast path for `std::thread::panicking`.
    
    This is done by adding a global atomic variable (non-TLS) that counts how many threads are panicking. In order to check if the current thread is panicking, this variable is read and, if it is zero, no thread (including the one where `panicking` is being called) is panicking and `panicking` can return `false` immediately without needing to access TLS. If the global counter is not zero, the local counter is accessed from TLS to check if the current thread is panicking.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    1fbd160 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#72770 - crlf0710:mixed_script_confusable, r…

    …=Manishearth
    
    Implement mixed script confusable lint.
    
    This implements the mixed script confusable lint defined in RFC 2457.
    This is blocked on rust-lang#72069 and unicode-rs/unicode-security#13, and will need a Cargo.toml version bump after those are resolved.
    
    The lint message warning is sub-optimal for now. We'll need a mechanism to properly output  `AugmentScriptSet` to screen, this is to be added in `unicode-security` crate.
    
    r? @Manishearth
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    887ce8e View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#72967 - integer32llc:prevent-default-arrows…

    …, r=kinnison
    
    Don't move cursor in search box when using arrows to navigate results
    
    ## What happens
    
    - Go to https://doc.rust-lang.org/stable/std/index.html
    - Press 's' to focus the search box
    - Type a query like 'test'
    - Press the down arrow one or more times to change which search result is highlighted
    - Press the up arrow once to go up one search result
    - Notice the cursor in the search box is now at the beginning of your query, such that if you now typed 'a' the search box would contain 'atest', when it would be expected that the cursor would have remained where it was and if you typed 'a' at this point it would result in 'testa'
    - Press the down arrow once to go down one search result
    - Now notice the cursor is at the end of your query again
    
    ## What I expected
    
    I expected that changing which search result was highlighted using the up and down arrows would have no effect on where the cursor was in the search box.
    
    ## The fix
    
    This PR prevents the default action of the up and down arrows when the custom keydown events are happening during a search.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    c6683a5 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#73102 - petrochenkov:flatgroup, r=Aaron1011

    proc_macro: Stop flattening groups with dummy spans
    
    Reduce the scope of the hack described in rust-lang#72545 (comment).
    
    We still pass AST fragments to attribute and derive macros as single nonterminal tokens rather than as tokens streams, but now use a precise flag instead of the span-based heuristic that could do lead to incorrect behavior in unrelated cases.
    
    rust-lang#73345 attempts to fully resolve this issue, but there are some compatibility issues to be addressed.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    8c038b7 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#73414 - lzutao:slice_strip, r=dtolnay

    Implement `slice_strip` feature
    
    Tracking issue: rust-lang#73413
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    082cdf9 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#73418 - doctorn:variants-intrinsic, r=kennytm

    Add unstable `core::mem::variant_count` intrinsic
    
    Adds a new `const fn` intrinsic which can be used to determine the number of variants in an `enum`.
    
    I've shown this to a couple of people and they invariably ask 'why on earth?', but there's actually a very neat use case:
    
    At the moment, if you want to create an opaque array type that's indexed by an `enum` with one element for each variant, you either have to hard-code the number of variants, add a `LENGTH` variant or use a `Vec`, none of which are suitable in general (number of variants could change; pattern matching `LENGTH` becomes frustrating; might not have `alloc`). By including this intrinsic, it becomes possible to write the following:
    
    ```rust
    #[derive(Copy, Clone)]
    enum OpaqueIndex {
        A = 0,
        B,
        C,
    }
    
    struct OpaqueVec<T>(Box<[T; std::mem::num_variants::<OpaqueIndex>()]>);
    
    impl<T> std::ops::Index<OpaqueIndex> for OpaqueVec<T> {
        type Output = T;
    
        fn index(&self, idx: OpaqueIndex) -> &Self::Output {
            &self.0[idx as usize]
        }
    }
    ```
    
    (We even have a use cases for this in `rustc` and I plan to use it to re-implement the lang-items table.)
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    839bcef View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#73507 - mati865:cleanup-mingw-llvm-linkage,…

    … r=matthewjasper
    
    Cleanup MinGW LLVM linkage workaround
    
    LLVM correctly passes `uuid` for a long time, GCC unwinding library (either static or dynamic) comes from [windows_gnu_base](https://github.com/rust-lang/rust/blob/06e47688bf15d0215edbe05b21603062f6d2eb5d/src/librustc_target/spec/windows_gnu_base.rs).
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    0b67c1f View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#73534 - estebank:borrowck-suggestions, r=ma…

    …tthewjasper
    
    Provide suggestions for some moved value errors
    
    When encountering an used moved value where the previous move happened
    in a `match` or `if let` pattern, suggest using `ref`. Fix rust-lang#63988.
    
    When encountering a `&mut` value that is used in multiple iterations of
    a loop, suggest reborrowing it with `&mut *`. Fix rust-lang#62112.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    0aef6ff View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#73581 - GuillaumeGomez:add-0766, r=varkor

    Create 0766 error code
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    3fc8f8e View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#73597 - ayazhafiz:i/const-span, r=ecstatic-…

    …morse
    
    Record span of `const` kw in GenericParamKind
    
    Context: this is needed for a fix of rust-lang/rustfmt#4263,
    which currently records the span of a const generic param incorrectly
    because the location of the `const` kw is not known.
    
    I am not sure how to add tests for this; any guidance in how to do so
    would be appreciated 🙂
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    bab4731 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#73619 - poliorcetics:mod-keyword, r=stevekl…

    …abnik
    
    Document the mod keyword
    
    Partial fix for rust-lang#34601 .
    
    Documentation for the `mod` keyword.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    19f7805 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#73621 - poliorcetics:mut-keyword, r=stevekl…

    …abnik
    
    Document the mut keyword
    
    Partial fix for rust-lang#34601.
    
    Documentation for the `mut` keyword. I think it's okay for it to be quite short, this is not the book not the reference, but if you find something is missing, do not hesitate to tell me.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    2334b93 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#73648 - poliorcetics:return-keyword, r=josh…

    …triplett
    
    Document the return keyword
    
    Partial fix of rust-lang#34601.
    
    This documents the `return` keyword with two short example to explain it is not needed for the last expression in a function and a long example to show its use when interrupting a function execution early.
    
    I did not put a link to the reference since the only link I found was https://doc.rust-lang.org/stable/reference/expressions/return-expr.html#return-expressions.
    
    @rustbot modify labels: T-doc,C-enhancement
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    5d4e2e1 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#73673 - ehuss:fix-ptr-docs, r=oli-obk

    Fix ptr doc warnings.
    
    rust-lang#73398 added some stray backtick lines which cause warnings when the docs are built.
    Manishearth committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    57167a9 View commit details
    Browse the repository at this point in the history