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 7 pull requests #128148

Closed
wants to merge 16 commits into from

Commits on Jul 14, 2024

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

Commits on Jul 18, 2024

  1. Replace ASCII control chars with Unicode Control Pictures

    ```
    error: bare CR not allowed in doc-comment
      --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:3:32
       |
    LL | /// doc comment with bare CR: '␍'
       |                                ^
    ```
    estebank committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    89f273f View commit details
    Browse the repository at this point in the history
  2. Be more accurate about calculating display_col from a BytePos

    No longer track "zero-width" chars in `SourceMap`, read directly from the line when calculating the `display_col` of a `BytePos`. Move `char_width` to `rustc_span` and use it from the emitter.
    
    This change allows the following to properly align in terminals (depending on the font, the replaced control codepoints are rendered as 1 or 2 width, on my terminal they are rendered as 1, on VSCode text they are rendered as 2):
    
    ```
    error: this file contains an unclosed delimiter
      --> $DIR/issue-68629.rs:5:17
       |
    LL | ␜␟ts␀![{i
       |       -- unclosed delimiter
       |       |
       |       unclosed delimiter
    LL | ␀␀  fn rݻoa>rݻm
       |                ^
    ```
    estebank committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    2d7795d View commit details
    Browse the repository at this point in the history
  3. Make unicode text flow control chars visible as �

    We already point these out quite aggressively, telling people not to use them, but would normally be rendered as nothing. Having them visible will make it easier for people to actually deal with them.
    
    ```
    error: unicode codepoint changing visible direction of text present in literal
      --> $DIR/unicode-control-codepoints.rs:26:22
       |
    LL |     println!("{:?}", '�');
       |                      ^-^
       |                      ||
       |                      |'\u{202e}'
       |                      this literal contains an invisible unicode text flow control codepoint
       |
       = note: these kind of unicode codepoints change the way text flows on applications that support them, but can cause confusion because they change the order of characters on the screen
       = help: if their presence wasn't intentional, you can remove them
    help: if you want to keep them but make them visible in your source code, you can escape them
       |
    LL |     println!("{:?}", '\u{202e}');
       |                       ~~~~~~~~
    ```
    
    vs the previous
    
    ```
    error: unicode codepoint changing visible direction of text present in literal
      --> $DIR/unicode-control-codepoints.rs:26:22
       |
    LL |     println!("{:?}", '');
       |                      ^-
       |                      ||
       |                      |'\u{202e}'
       |                      this literal contains an invisible unicode text flow control codepoint
       |
       = note: these kind of unicode codepoints change the way text flows on applications that support them, but can cause confusion because they change the order of characters on the screen
       = help: if their presence wasn't intentional, you can remove them
    help: if you want to keep them but make them visible in your source code, you can escape them
       |
    LL |     println!("{:?}", '\u{202e}');
       |                       ~~~~~~~~
    ```
    estebank committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    9dffe95 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2024

  1. Fix some #[cfg_attr(not(doc), repr(..))]

    Now that rust-lang#90435 seems to have been resolved.
    GrigorenkoPV committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    b74f426 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. std: use duplicate thread local state in tests

    With rust-lang/miri#3739 merged, the deduplication hack is no longer necessary.
    joboet committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    a4dd0d6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dfb3fb3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4d5ac84 View commit details
    Browse the repository at this point in the history
  4. Mark missing_fragment_specifier as FutureReleaseErrorReportInDeps

    We are moving toward forbidding `missing_fragment_specifier` either in
    edition 2024 or unconditionally. Make a first step toward this by
    ensuring crates that rely on the old behavior are reported when used as
    dependencies.
    
    Tracking issue: <rust-lang#128143>
    tgross35 committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    c9886a1 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#126548 - rik86189:issue-88264-fix, r=tgross35

    Improved clarity of documentation for std::fs::create_dir_all
    
    Closes rust-lang#88264
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    e2c014a View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#127528 - estebank:ascii-control-chars, r=ol…

    …i-obk
    
    Replace ASCII control chars with Unicode Control Pictures
    
    Replace ASCII control chars like `CR` with Unicode Control Pictures like `␍`:
    
    ```
    error: bare CR not allowed in doc-comment
      --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:3:32
       |
    LL | /// doc comment with bare CR: '␍'
       |                                ^
    ```
    
    Centralize the checking of unicode char width for the purposes of CLI display in one place. Account for the new replacements. Remove unneeded tracking of "zero-width" unicode chars, as we calculate these in the `SourceMap` as needed now.
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    76deec1 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#127717 - gurry:127441-stray-impl-sugg, r=co…

    …mpiler-errors
    
    Fix malformed suggestion for repeated maybe unsized bounds
    
    Fixes rust-lang#127441
    
    Now when we encounter something like `foo(a : impl ?Sized + ?Sized)`, instead of suggesting removal of both bounds and leaving `foo(a: impl )` behind, we suggest changing the first bound to `Sized` and removing the second bound, resulting in `foo(a: impl Sized)`.
    
    Although the issue was reported for impl trait types, it also occurred with regular param bounds. So if we encounter `foo<T: ?Sized + ?Sized>(a: T)` we now detect that all the bounds are `?Sized` and therefore emit the suggestion to remove the entire predicate `: ?Sized + ?Sized` resulting in `foo<T>(a: T)`.
    
    Lastly, if we encounter a situation where some of the bounds are something other than `?Sized`, then we emit separate removal suggestions for each `?Sized` bound. E.g. if we see `foo(a: impl ?Sized + Bar + ?Sized)` or `foo<T: ?Sized + Bar + ?Sized>(a: T)` we emit suggestions such that the user will be left with `foo(a : impl Bar)` or `foo<T: Bar>(a: T)` respectively.
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    a58d74b View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#128046 - GrigorenkoPV:90435, r=tgross35

    Fix some `#[cfg_attr(not(doc), repr(..))]`
    
    Now that rust-lang#90435 seems to have been resolved.
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    5a0b5df View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#128122 - tgross35:missing-fragment-specifie…

    …r-unconditional, r=petrochenkov
    
    Mark `missing_fragment_specifier` as `FutureReleaseErrorReportInDeps`
    
    We are moving toward forbidding `missing_fragment_specifier` either in edition 2024 or unconditionally. Make a first step toward this by ensuring crates that rely on the old behavior are reported when used as dependencies.
    
    Tracking issue: <rust-lang#128143>
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    568b6a0 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#128135 - joboet:reduplicate_tls, r=tgross35

    std: use duplicate thread local state in tests
    
    With rust-lang/miri#3739 merged, the deduplication hack is no longer necessary.
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    4415a4e View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#128140 - veera-sivarajan:remove-ident-to-st…

    …r-conversions, r=compiler-errors
    
    Remove Unnecessary `.as_str()` Conversions
    
    Because comparing interned values is much more efficient than converting a `rustc_span::symbol::Ident` to `&str`  and then doing the comparison.
    
    docs: https://doc.rust-lang.org/stable/nightly-rustc/rustc_span/symbol/struct.Ident.html#method.as_str
    matthiaskrgr committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    c9fdddf View commit details
    Browse the repository at this point in the history