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

Be more careful about interpreting a label/lifetime as a mistyped char literal. #120460

Merged
merged 2 commits into from
Jan 30, 2024

Commits on Jan 28, 2024

  1. Tweak comment and naming for recover_unclosed_char.

    Because it can be used for a lifetime or a label.
    nnethercote committed Jan 28, 2024
    Configuration menu
    Copy the full SHA
    5bda589 View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2024

  1. Be more careful about interpreting a label/lifetime as a mistyped cha…

    …r literal.
    
    Currently the parser will interpret any label/lifetime in certain
    positions as a mistyped char literal, on the assumption that the
    trailing single quote was accidentally omitted. This is reasonable for a
    something like 'a (because 'a' would be valid) but not reasonable for a
    something like 'abc (because 'abc' is not valid).
    
    This commit restricts this behaviour only to labels/lifetimes that would
    be valid char literals, via the new `could_be_unclosed_char_literal`
    function. The commit also augments the `label-is-actually-char.rs` test
    in a couple of ways:
    - Adds testing of labels/lifetimes with identifiers longer than one
      char, e.g. 'abc.
    - Adds a new match with simpler patterns, because the
      `recover_unclosed_char` call in `parse_pat_with_range_pat` was not
      being exercised (in this test or any other ui tests).
    
    Fixes rust-lang#120397, an assertion failure, which was caused by this behaviour
    in the parser interacting with some new stricter char literal checking
    added in rust-lang#120329.
    nnethercote committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    306612e View commit details
    Browse the repository at this point in the history