Skip to content

Remove fn pretty_printing_compatibility_hack  #73933

Closed

Description

@petrochenkov

#73345 adds a hack to support some older versions of proc-macro-hack and procedural-masquerade which included incorrect asserts.
The hack detects some specific enums used by those crates literally by their names and names of their variants.

Using newer versions of those crates fixes the issues

  • proc-macro-hack requires a major version bump so it doesn't happen automatically
  • for procedural-masquerade only a bugfix version update is required, so cargo update should do the job, but the old version is fixed in hundreds of Cargo.locks according to crater.

This hack needs to be removed eventually.
Now it's July 1 2020, so on July 1 2021 or later we need to run crater once more to estimate the use of these old versions again.
Then we could assume that crates not updating from outdated versions for so long are not maintained and we can break them and remove the hack.

Activity

  1. added
    A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)
    A-prettyArea: Pretty printing (including `-Z unpretty`)
    on Jul 1, 2020
  2. added
    C-cleanupCategory: PRs that clean code up or issues documenting cleanup.
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on Jul 1, 2020
  3. JohnTitor commented on Jul 30, 2021

    @JohnTitor
    Member

    @petrochenkov It's now July 30th, could we start a crater run?

  4. petrochenkov commented on Jul 30, 2021

    @petrochenkov
    ContributorAuthor

    IIRC, @Aaron1011 recently did some further deprecation work related to these hacks, but I'm not sure what is the current status exactly.

  5. Aaron1011 commented on Jul 30, 2021

    @Aaron1011
    Contributor

    I did a Crater run for this fairly recently, which found 135 regressions: #85387

  6. nnethercote commented on Jun 16, 2022

    @nnethercote
    Contributor

    Note: once nt_pretty_printing_compatibility_hack is removed, then Group::flatten can be removed, along with tokenstream::Cursor::append.

  7. tjallingt commented on Sep 5, 2022

    @tjallingt

    The current PR trying to remove the hack is #93275.
    With #94063 as an alternative that keeps the hack for the rental crate.

  8. added 3 commits that reference this issue on Feb 18, 2026
    737ed6f
    abc3a2e
    6ac5b8c
  9. added a commit that references this issue on Feb 18, 2026
    64087bc
  10. added a commit that references this issue on Feb 18, 2026
    a9f6c14
  11. added a commit that references this issue on Feb 19, 2026
    5dd9321
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-prettyArea: Pretty printing (including `-Z unpretty`)A-proc-macro-back-compatArea: Backwards compatibility hacks for proc macrosA-proc-macrosArea: Procedural macrosC-cleanupCategory: PRs that clean code up or issues documenting cleanup.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions