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 #73746

Merged
merged 50 commits into from
Jun 26, 2020
Merged

Rollup of 14 pull requests #73746

merged 50 commits into from
Jun 26, 2020

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 20, 2020

  1. Configuration menu
    Copy the full SHA
    1b47e8f View commit details
    Browse the repository at this point in the history
  2. explain the logic a bit

    tshepang committed Jun 20, 2020
    Configuration menu
    Copy the full SHA
    16e741c 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
    e84552e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ef24faf View commit details
    Browse the repository at this point in the history
  5. place non-obvious defaults on a separate line

    See rust-lang#73538 (comment)
    for the motivation
    tshepang committed Jun 22, 2020
    Configuration menu
    Copy the full SHA
    b65ea1b View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2020

  1. 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. Tweak binop errors

    * Suggest potentially missing binop trait bound (fix rust-lang#73416)
    * Use structured suggestion for dereference in binop
    estebank committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    5aab1a9 View commit details
    Browse the repository at this point in the history
  2. fix

    tshepang committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    b23baa7 View commit details
    Browse the repository at this point in the history
  3. 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
  4. Configuration menu
    Copy the full SHA
    65becef View commit details
    Browse the repository at this point in the history
  5. 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
  6. 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
  7. 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
  8. 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
  9. review comments: clean up code

    * deduplicate logic
    * fix typos
    * remove unnecessary state
    estebank committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    09af184 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a5a831f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    eb726c0 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    367858a View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    242a5cd View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    547d863 View commit details
    Browse the repository at this point in the history
  15. Generalize generator-debug test a bit

    Don't be so reliant on particular line ordering (though FileCheck makes
    this hard in general, IMO). Also disable for MSVC.
    tmandry committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    477ecc5 View commit details
    Browse the repository at this point in the history
  16. Add generator-debug test for MSVC

    ..which doesn't use variant types.
    tmandry committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    2d652d9 View commit details
    Browse the repository at this point in the history
  17. Give up on checking filename

    tmandry committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    fe3df64 View commit details
    Browse the repository at this point in the history
  18. Split out async fn and generator test

    This keeps FileCheck from tripping over unimportant differences in
    codegen.
    tmandry committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    887fbd9 View commit details
    Browse the repository at this point in the history
  19. Suggest type param trait bound for binop only when appropriate

    Verify that the binop trait *is* implemented for the types *if* all the
    involved type parameters are replaced with fresh inferred types. When
    this is the case, it means that the type parameter was indeed missing a
    trait bound. If this is not the case, provide a generic `note` refering
    to the type that doesn't implement the expected trait.
    estebank committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    8f40dae 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
    2e3f517 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    54293c1 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f27dcd7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    eb6d9a4 View commit details
    Browse the repository at this point in the history
  7. 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
  8. Configuration menu
    Copy the full SHA
    25e864e 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    5158b3c View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#72738 - mati865:self-contained-option, r=pe…

    …trochenkov
    
    Self contained linking option
    
    With objects moved to self-contained directory by rust-lang#72999 we can now add option to control whether to use self-contained on native linkage mode.
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    9275ff7 View commit details
    Browse the repository at this point in the history
  3. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    23c9ac6 View commit details
    Browse the repository at this point in the history
  4. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    c50d981 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#73460 - tmandry:variant-lineinfo, r=oli-obk

    Emit line info for generator variants
    
    Debuggers should be able to read a generator / async fn state machine and show the line it's suspended at. Eventually, this could grow into an "async stack trace" feature of sorts. While no debugger support this for Rust today, this PR adds the debuginfo necessary for that support to exist.
    
    [This gist](https://gist.github.com/tmandry/6d7004fa008684f76809208847459f9b) shows the resulting debuginfo for a simple example. Here's a snippet:
    
    ```
    0x00000986:           DW_TAG_variant
                            DW_AT_discr_value       (0x03)
    
    0x00000988:             DW_TAG_member
                              DW_AT_name    ("3")
                              DW_AT_type    (0x000009bc "Suspend0")
                              DW_AT_decl_file       ("/home/tmandry/code/playground/generator-simple.rs")
                              DW_AT_decl_line       (6)
                              DW_AT_alignment       (8)
                              DW_AT_data_member_location    (0x00)
    ```
    
    The file and line have been added here. The line currently points to the beginning of the statement containing the yield (or await), because that's what the MIR source info points to for the yield terminator. (We may want to point to the yield or await line specifically, but that can be done independently of this change.)
    
    Debuggers don't know how to use this kind of info yet. However, we're hoping to experiment with adding such support to Fuchsia's debugger. It would be exciting if someone were interested in adding similar to support to gdb/lldb.
    
    r? @oli-obk
    cc @eddyb @jonas-schievink
    
    Part of rust-lang#73524.
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    3f5b8c8 View commit details
    Browse the repository at this point in the history
  6. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    4a245ae View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#73538 - tshepang:fix-example, r=nikomatsakis

    make commented examples use valid syntax, and be more consistent
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    0d5cfb4 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#73581 - GuillaumeGomez:add-0766, r=varkor

    Create 0766 error code
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    0d03456 View commit details
    Browse the repository at this point in the history
  9. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    01a293a View commit details
    Browse the repository at this point in the history
  10. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    f91330a View commit details
    Browse the repository at this point in the history
  11. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    131e254 View commit details
    Browse the repository at this point in the history
  12. 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 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    91f8766 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#73674 - estebank:op-trait-bound-suggestion,…

    … r=davidtwco
    
    Tweak binop errors
    
    * Suggest potentially missing binop trait bound (fix rust-lang#73416)
    * Use structured suggestion for dereference in binop
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    7fb7765 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#73687 - GuillaumeGomez:cleanup-e0701, r=Dyl…

    …an-DPC
    
    Clean up E0701 explanation
    
    r? @Dylan-DPC
    Manishearth authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    8c5d794 View commit details
    Browse the repository at this point in the history