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 17 pull requests #73924

Merged
merged 52 commits into from
Jul 1, 2020
Merged

Rollup of 17 pull requests #73924

merged 52 commits into from
Jul 1, 2020

Commits on Jun 14, 2020

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

Commits on Jun 18, 2020

  1. impl From<char> for String

    This allows us to write
    
    fn char_to_string() -> String {
        'a'.into()
    }
    
    which was not possible before.
    matthiaskrgr committed Jun 18, 2020
    Configuration menu
    Copy the full SHA
    1d0378c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2cde493 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2020

  1. Fix sentence structure

    Fixed grammar and sentence structure on appropriate instances.
    Anirban166 authored Jun 23, 2020
    Configuration menu
    Copy the full SHA
    886f81e View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2020

  1. Update Box::from_raw example to generalize better

    I know very little about rust, so I saw this example and tried to generalize it by writing,
    ```
        let layout = Layout::new::<T>();
        let new_obj = unsafe {
            let ptr = alloc(layout) as *mut T;
            *ptr = obj;
            Box::from_raw(ptr)
        };
    ```
    for some more complicated `T`, which ended up crashing with SIGSEGV,
    because it tried to `drop_in_place` the previous object in `ptr` which is
    of course garbage. I also added a comment that explains why `.write`
    is used, but I think adding that comment is optional and may be too verbose
    here. I do however think that changing this example is a good idea to
    suggest the correct generalization. `.write` is also used in most of the rest
    of the documentation here, even if the example is `i32`, so it would additionally
    be more consistent.
    Keno authored Jun 24, 2020
    Configuration menu
    Copy the full SHA
    0c88dd6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3b5d7f8 View commit details
    Browse the repository at this point in the history
  3. Update README.md

    Anirban166 authored Jun 24, 2020
    Configuration menu
    Copy the full SHA
    d6cf8fc View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2020

  1. Configuration menu
    Copy the full SHA
    2bbc2b3 View commit details
    Browse the repository at this point in the history
  2. Commit suggestion

    Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
    Anirban166 and nikomatsakis authored Jun 25, 2020
    Configuration menu
    Copy the full SHA
    22fc18f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8edcc6d View commit details
    Browse the repository at this point in the history
  4. Added clickable-link

    Linked the logo/svg to https://www.rust-lang.org/
    (change if required)
    Anirban166 authored Jun 25, 2020
    Configuration menu
    Copy the full SHA
    3a1ac28 View commit details
    Browse the repository at this point in the history
  5. Add responsiveness to logo

    Added responsiveness to image logo based on device width (set at 90% of device width, which can be changed as per requirement)
    Anirban166 authored Jun 25, 2020
    Configuration menu
    Copy the full SHA
    4c33b7c View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2020

  1. Merge pull request rust-lang#2 from rust-lang/master

    update master
    TyPR124 authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    00ef461 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b71a3e1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    15e81be View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cf398a3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    224bc05 View commit details
    Browse the repository at this point in the history
  6. Make likely and unlikely const

    They are gated by internal feature gate const_likely
    nbdd0121 committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    fc239e8 View commit details
    Browse the repository at this point in the history
  7. Fix ICE for lib features

    nbdd0121 committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    779b05d View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2020

  1. Configuration menu
    Copy the full SHA
    3fc5593 View commit details
    Browse the repository at this point in the history
  2. Update src/librustc_mir/interpret/intrinsics.rs

    Co-authored-by: Oliver Scherer <github35764891676564198441@oli-obk.de>
    nbdd0121 and oli-obk authored Jun 27, 2020
    Configuration menu
    Copy the full SHA
    8b43012 View commit details
    Browse the repository at this point in the history
  3. Use an 'approximate' universal upper bound when reporting region errors

    Fixes rust-lang#67765
    
    When reporting errors during MIR region inference, we sometimes use
    `universal_upper_bound` to obtain a named universal region that we
    can display to the user. However, this is not always possible - in a
    case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
    containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
    usually better to display *some* named region (even if there are
    multiple involved) rather than fall back to a generic error involving
    `'static`.
    
    This commit adds a new `approx_universal_upper_bound` method, which
    uses the lowest-numbered universal region if the only alternative is to
    return `'static`.
    Aaron1011 committed Jun 27, 2020
    Configuration menu
    Copy the full SHA
    517d361 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2020

  1. Configuration menu
    Copy the full SHA
    7231e57 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4595fa8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e611a3f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    dfd454b View commit details
    Browse the repository at this point in the history
  5. Fix small nits

    poliorcetics committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    4224313 View commit details
    Browse the repository at this point in the history
  6. Edit cursor.prev() method docs in lexer

    Fix missing punctuation
    pierwill committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    40c74a7 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2020

  1. stop taking references in Relate

    lcnr committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    1d7ba5f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    71b45b9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f632bd1 View commit details
    Browse the repository at this point in the history
  4. update equal_up_to_regions

    lcnr committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    69e4990 View commit details
    Browse the repository at this point in the history
  5. remove rustdoc warnings

    tshepang committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    f3645ca View commit details
    Browse the repository at this point in the history
  6. Bring net/parser.rs up to modern up to date with modern rust patterns

    Made the following changes throughout the IP address parser:
    - Replaced all uses of `is_some()` / `is_none()` with `?`.
    - "Upgraded" loops wherever possible; ie, replace `while` with `for`, etc.
        - Removed all cases of manual index tracking / incrementing.
    - Renamed several single-character variables with more expressive names.
    - Replaced several manual control flow segments with equivalent adapters (such as `Option::filter`).
    - Removed `read_seq_3`; replaced with simple sequences of `?`.
    - Parser now reslices its state when consuming, rather than carrying a separate state and index variable.
    - `read_digit` now uses `char::to_digit`.
    - Removed unnecessary casts back and forth between u8 and u32
    - Added comments throughout, especially in the complex IPv6 parsing logic.
    - Added comprehensive local unit tests for the parser to validate these changes.
    Lucretiel authored and dtolnay committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    3ab7ae3 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2020

  1. Stabilize #[track_caller].

    Does not yet make its constness stable, though. Use of
    `Location::caller` in const contexts is still gated by
    `#![feature(const_caller_location)]`.
    anp committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    f07d10d View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#72071 - PankajChaudhary5:ErrorCode-E0687, r…

    …=davidtwco
    
    Added detailed error code explanation for issue E0687 in Rust compiler.
    
    Added proper error explanation for issue E0687 in the Rust compiler.
    Error Code E0687
    
    Sub Part of Issue rust-lang#61137
    
    r? @GuillaumeGomez
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    128fa2b View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#72369 - Lucretiel:socketaddr-parse, r=dtolnay

    Bring net/parser.rs up to modern up to date with modern rust patterns
    
    The current implementation of IP address parsing is very unidiomatic; it's full of `if` / `return` / `is_some` / `is_none` instead of `?`, `loop` with manual index tracking; etc. Went through and did and cleanup to try to bring it in line with modern sensibilities.
    
    The obvious concern with making changes like this is "make sure you understand why it's written that way before changing it". Looking through the commit history for this file, there are several much smaller commits that make similar changes (For instance, rust-lang@3024c14, rust-lang@4f3ab49, rust-lang@79f8764), and there don't seem to be any commits in the history that indicate that this lack of idiomaticity is related to specific performance needs (ie, there aren't any commits that replace a `for` loop with a `loop` and a manual index count). In fact, the basic shape of the file is essentially unchanged from its initial commit back in 2015.
    
    Made the following changes throughout the IP address parser:
    - Replaced all uses of `is_some()` / `is_none()` with `?`.
    - "Upgraded" loops wherever possible; ie, replace `while` with `for`, etc.
        - Removed all cases of manual index tracking / incrementing.
    - Renamed several single-character variables with more expressive names.
    - Replaced several manual control flow segments with equivalent adapters (such as `Option::filter`).
    - Removed `read_seq_3`; replaced with simple sequences of `?`.
    - Parser now reslices its state when consuming, rather than carrying a separate state and index variable.
    - `read_digit` now uses `char::to_digit`.
    - Added comments throughout, especially in the complex IPv6 parsing logic.
    - Added comprehensive local unit tests for the parser to validate these changes.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    33f8ce2 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#72445 - anp:stabilize-track-caller, r=oli-obk

    Stabilize `#[track_caller]`.
    
    # Stabilization Report
    
    RFC: [2091]
    Tracking issue: rust-lang#47809
    
    ## Summary
    
    From the [rustc-dev-guide chapter][dev-guide]:
    
    > Take this example program:
    
    ```rust
    fn main() {
        let foo: Option<()> = None;
        foo.unwrap(); // this should produce a useful panic message!
    }
    ```
    
    > Prior to Rust 1.42, panics like this `unwrap()` printed a location in libcore:
    
    ```
    $ rustc +1.41.0 example.rs; example.exe
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value',...core\macros\mod.rs:15:40
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    ```
    
    > As of 1.42, we get a much more helpful message:
    
    ```
    $ rustc +1.42.0 example.rs; example.exe
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', example.rs:3:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    ```
    
    > These error messages are achieved through a combination of changes to `panic!` internals to make use of `core::panic::Location::caller` and a number of `#[track_caller]` annotations in the standard library which propagate caller information.
    
    The attribute adds an implicit caller location argument to the ABI of annotated functions, but does not affect the type or MIR of the function. We implement the feature entirely in codegen and in the const evaluator.
    
    ## Bottom Line
    
    This PR stabilizes the use of `#[track_caller]` everywhere, including traits and extern blocks. It also stabilizes `core::panic::Location::caller`, although the use of that function in a const context remains gated by `#![feature(const_caller_location)]`.
    
    The implementation for the feature already changed the output of panic messages for a number of std functions, as described in the [1.42 release announcement]. The attribute's use in `Index` and `IndexMut` traits is visible to users since 1.44.
    
    ## Tests
    
    All of the tests for this feature live under [src/test/ui/rfc-2091-track-caller][tests] in the repo.
    
    Noteworthy cases:
    
    * [use of attr in std]
      * validates user-facing benefit of the feature
    * [trait attribute inheritance]
      * covers subtle behavior designed during implementation and not RFC'd
    * [const/codegen equivalence]
      * this was the result of a suspected edge case and investigation
    * [diverging function support]
      * covers an unresolved question from the RFC
    * [fn pointers and shims]
      * covers important potential sources of unsoundness
    
    ## Documentation
    
    The rustc-dev-guide now has a chapter on [Implicit Caller Location][dev-guide].
    
    I have an [open PR to the reference][attr-reference-pr] documenting the attribute.
    
    The intrinsic's [wrapper] includes some examples as well.
    
    ## Implementation History
    
    * 2019-10-02: [`#[track_caller]` feature gate (RFC 2091 1/N) rust-lang#65037](rust-lang#65037)
      * Picked up the patch that @ayosec had started on the feature gate.
    * 2019-10-13: [Add `Instance::resolve_for_fn_ptr` (RFC 2091 rust-lang#2/N) rust-lang#65182](rust-lang#65182)
    * 2019-10-20: ~~[WIP Add MIR argument for #[track_caller] (RFC 2091 3/N) rust-lang#65258](rust-lang#65258
      * Abandoned approach to send location as a MIR argument.
    * 2019-10-28: [`std::panic::Location` is a lang_item, add `core::intrinsics::caller_location` (RFC 2091 3/N) rust-lang#65664](rust-lang#65664)
    * 2019-12-07: [Implement #[track_caller] attribute. (RFC 2091 4/N) rust-lang#65881](rust-lang#65881)
    * 2020-01-04: [libstd uses `core::panic::Location` where possible. rust-lang#67137](rust-lang#67137)
    * 2020-01-08: [`Option::{expect,unwrap}` and `Result::{expect, expect_err, unwrap, unwrap_err}` have `#[track_caller]` rust-lang#67887](rust-lang#67887)
    * 2020-01-20: [Fix #[track_caller] and function pointers rust-lang#68302](rust-lang#68302) (fixed rust-lang#68178)
    * 2020-03-23: [#[track_caller] in traits rust-lang#69251](rust-lang#69251)
    * 2020-03-24: [#[track_caller] on core::ops::{Index, IndexMut}. rust-lang#70234](rust-lang#70234)
    * 2020-04-08 [Support `#[track_caller]` on functions in `extern "Rust" { ... }` rust-lang#70916](rust-lang#70916)
    
    ## Unresolveds
    
    ### From the RFC
    
    > Currently the RFC simply prohibit applying #[track_caller] to trait methods as a future-proofing
    > measure.
    
    **Resolved.** See the dev-guide documentation and the tests section above.
    
    > Diverging functions should be supported.
    
    **Resolved.** See the tests section above.
    
    > The closure foo::{{closure}} should inherit most attributes applied to the function foo, ...
    
    **Resolved.** This unknown was related to specifics of the implementation which were made irrelevant by the final implementation.
    
    ### Binary Size
    
    I [instrumented track_caller to use custom sections][measure-size] in a local build and discovered relatively minor binary size usage for the feature overall. I'm leaving the issue open to discuss whether we want to upstream custom section support.
    
    There's an [open issue to discuss mitigation strategies][mitigate-size]. Some decisions remain about the "right" strategies to reduce size without overly constraining the compiler implementation. I'd be excited to see someone carry that work forward but my opinion is that we shouldn't block stabilization on implementing compiler flags for redaction.
    
    ### Specialization
    
    There's an [open issue][specialization] on the semantics of the attribute in specialization chains. I'm inclined to move forward with stabilization without an exact resolution here given that specialization is itself unstable, but I also think it should be an easy question to resolve.
    
    ### Location only points to the start of a call span
    
    rust-lang#69977 was resolved by rust-lang#73182, and the next step should probably be to [extend `Location` with a notion of the end of a call](rust-lang#73554).
    
    ### Regression of std's panic messages
    
    rust-lang#70963 should be resolved by serializing span hygeine to crate metadata: rust-lang#68686.
    
    [2091]: https://github.com/rust-lang/rfcs/blob/master/text/2091-inline-semantic.md
    [dev-guide]: https://rustc-dev-guide.rust-lang.org/codegen/implicit-caller-location.html
    [specialization]: rust-lang#70293
    [measure-size]: rust-lang#70579
    [mitigate-size]: rust-lang#70580
    [attr-reference-pr]: rust-lang/reference#742
    [wrapper]: https://doc.rust-lang.org/nightly/core/panic/struct.Location.html#method.caller
    [tests]: https://github.com/rust-lang/rust/tree/master/src/test/ui/rfc-2091-track-caller
    [const/codegen equivalence]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/caller-location-fnptr-rt-ctfe-equiv.rs
    [diverging function support]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/diverging-caller-location.rs
    [use of attr in std]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs
    [fn pointers and shims]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs
    [trait attribute inheritance]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/tracked-trait-impls.rs
    [1.42 release announcement]: https://blog.rust-lang.org/2020/03/12/Rust-1.42.html#useful-line-numbers-in-option-and-result-panic-messages
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    ae79c30 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#73466 - matthiaskrgr:char_into_string, r=dt…

    …olnay
    
    impl From<char> for String
    
    This allows us to write
    
    ````rust
    fn char_to_string() -> String {
        'a'.into()
    }
    ````
    
    which was not possible before.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    b7d13c0 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#73548 - tshepang:fix-rustdoc-warnings, r=ec…

    …static-morse
    
    remove rustdoc warnings
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    39209ac View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#73649 - Anirban166:patch-1, r=steveklabnik

    Fix sentence structure
    
    Fixed grammar and sentence structure on appropriate instances.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    0eb9799 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#73678 - Keno:patch-1, r=LukasKalbertodt

    Update Box::from_raw example to generalize better
    
    I know very little about rust, so I saw the example here
    ```
    use std::alloc::{alloc, Layout};
    
    unsafe {
        let ptr = alloc(Layout::new::<i32>()) as *mut i32;
        *ptr = 5;
        let x = Box::from_raw(ptr);
    }
    ```
    and tried to generalize it by writing,
    ```
        let layout = Layout::new::<T>();
        let new_obj = unsafe {
            let ptr = alloc(layout) as *mut T;
            *ptr = obj;
            Box::from_raw(ptr)
        };
    ```
    for some more complicated `T`, which ended up crashing with SIGSEGV,
    because it tried to `drop_in_place` the previous object in `ptr` which is
    of course garbage. I think that changing this example to use `.write` instead
    would be a good idea to suggest the correct generalization. It is also more
    consistent with other documentation items in this file, which use `.write`.
    I also added a comment to explain it, but I'm not too attached to that,
    and can see it being too verbose in this place.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    6556f26 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#73705 - lcnr:skip_binder, r=nikomatsakis

    stop taking references in Relate
    
    Adds a `Copy` bound to `Relate` and changes the type signatures to `T` from `&T`. While the `Copy` bound is not strictly necessary (i.e. the `Clone` bound of `TypeRelation` would be good enough), we don't need non `Copy` types and it simplifies the implementation.
    
    Removes the afaict unused impls for `Vec<ty::PolyExistentialProjection<'tcx>>`, `Rc<T>` and `Box<T>`. If they end up being relevant again the bound of `Relate` can be reduced to `T: Clone`.
    
    This also changes signature of `Binder::skip_binder` to `fn skip_binder(self) -> T`.
    
    `TypeError::ProjectionBoundsLength` was never used and is also removed in this PR.
    
    r? @nikomatsakis maybe 🤔 feel free to reassign
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    9c65486 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#73716 - poliorcetics:static-keyword, r=Luka…

    …sKalbertodt
    
    Document the static keyword
    
    Partial fix of rust-lang#34601.
    
    This documents the `static` keyword. It's basically a simplified version of the reference with more examples.
    
    @rustbot modify labels: T-doc,C-enhancement
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    8ac17d1 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#73752 - TyPR124:invalid-parameter-error, r=…

    …LukasKalbertodt
    
    Remap Windows ERROR_INVALID_PARAMETER to ErrorKind::InvalidInput from Other
    
    I don't know if this is acceptable or how likely it is to break existing code, but it seem to me ERROR_INVALID_PARAMETER "The parameter is incorrect" should map to ErrorKind::InvalidInput "A parameter was incorrect". Previously this value fell through to ErrorKind::Other.
    
    I can't speak for anyone but myself, but I instinctively thought it would be InvalidInput.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    3951a98 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#73776 - aszenz:refactor_mir_module, r=wesle…

    …ywiser
    
    Move terminator to new module
    
    Moves terminator types from `librustc_middle/mir/mod.rs` into submodule
    Fixes rust-lang#73723
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    d6bee55 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#73778 - nbdd0121:const_likely, r=oli-obk

    Make `likely` and `unlikely` const, gated by feature `const_unlikely`
    
    This PR also contains a fix to allow `#[allow_internal_unstable]` to work properly with `#[rustc_const_unstable]`.
    
    cc @RalfJung @nagisa
    
    r? @oli-obk
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    ec41d01 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#73805 - poliorcetics:type-keyword, r=kennytm

    Document the type keyword
    
    Partial fix of rust-lang#34601.
    
    Two small examples, one clarifying that `type` only defines an alias, not a completely new type, the other explaining the use in traits.
    
    @rustbot modify labels: T-doc,C-enhancement
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    178b0c2 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#73806 - Aaron1011:feature/approx-universal-…

    …upper, r=estebank
    
    Use an 'approximate' universal upper bound when reporting region errors
    
    Fixes rust-lang#67765
    
    When reporting errors during MIR region inference, we sometimes use
    `universal_upper_bound` to obtain a named universal region that we
    can display to the user. However, this is not always possible - in a
    case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
    containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
    usually better to display *some* named region (even if there are
    multiple involved) rather than fall back to a generic error involving
    `'static`.
    
    This commit adds a new `approx_universal_upper_bound` method, which
    uses the lowest-numbered universal region if the only alternative is to
    return `'static`.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    f213957 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#73828 - nop:fix/parameter-name-help, r=este…

    …bank
    
    Fix wording for anonymous parameter name help
    
    ```
     --> exercises/functions/functions2.rs:8:15
      |
    8 | fn call_me(num) {
      |               ^ expected one of `:`, `@`, or `|`
      |
      = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
    help: if this is a `self` type, give it a parameter name
      |
    8 | fn call_me(self: num) {
      |            ^^^^^^^^^
    help: if this was a parameter name, give it a type
      |
    8 | fn call_me(num: TypeName) {
      |            ^^^^^^^^^^^^^
    help: if this is a type, explicitly ignore the parameter name
      |
    8 | fn call_me(_: num) {
      |
    ```
    This commit changes "if this was a parameter name" to "if this is a parameter name" to match the wording of similar errors.
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    db900d4 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of rust-lang#73846 - pierwill:pierwill-patch-2, r=joshtr…

    …iplett
    
    Fix comma in debug_assert! docs
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    affd950 View commit details
    Browse the repository at this point in the history
  18. Rollup merge of rust-lang#73847 - pierwill:pierwill-cursor-doc, r=mat…

    …thewjasper
    
    Edit cursor.prev() method docs in lexer
    
    Fix missing punctuation
    Manishearth authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    c9b3e86 View commit details
    Browse the repository at this point in the history