Skip to content

prelude path should not appear in error messages #56861

Open
@zackmdavis

Description

@zackmdavis
Member

(Split off from discussion on #56188.)

There are a few places where the path std::prelude::v1 appears in diagnostic messages.

zmd@ReflectiveCoherence:~/Code/rust/src/test/ui$ ag std::prelude
[...]
27 matches
9 files contained matches

I argue that this is bad because the point of the prelude is to relieve the ordinary programmer from having to think about where necessities like Some and Vec live; the module std::prelude::v1 is an implementation detail that should be mentioned in places like the Book, but which I don't want to see cluttering up error messages.

We are manually stripping off the std::prelude::v1:: in a couple places (one, another proposed in open PR #56188), but we should:

  • strip std::prelude::v1:: for all diagnostic messages
    do so in a unified DRY way, rather than having that hardcoded string littering the codebase in several places

Activity

added
E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
A-diagnosticsArea: Messages for errors, warnings, and lints
on Dec 15, 2018
estebank

estebank commented on Dec 17, 2018

@estebank
Contributor

I wouldn't mark this as E-easy because I believe the proper solution is dependent on #21934 and probably #14007 being addressed. Just stripping the text wouldn't be needed if we referred to types using the the local scope-dependent path instead of the fully qualified name.

removed
E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
on Dec 17, 2018
added
D-papercutDiagnostics: An error or lint that needs small tweaks.
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
on Oct 10, 2019
added
C-enhancementCategory: An issue proposing an enhancement or a PR with one.
on Jun 11, 2020
m-ou-se

m-ou-se commented on Mar 9, 2021

@m-ou-se
Member

This is now also an issue for #82217, which uses a different prelude for edition 2021.

diff of stderr:

13   --> $DIR/do-not-attempt-to-add-suggestions-with-no-changes.rs:3:25
14    |
15 LL |     fn into_future() -> Err {}
+    |                         ^^^
+    |                         |
+    |                         not a type
+    |                         not a type
+    |                         help: try using the variant's enum: `std::prelude::rust_2021`
18 error: aborting due to 2 previous errors
19 

(Failure here: #82939 (comment))

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-diagnosticsArea: Messages for errors, warnings, and lintsC-enhancementCategory: An issue proposing an enhancement or a PR with one.D-papercutDiagnostics: An error or lint that needs small tweaks.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

        Participants

        @crlf0710@m-ou-se@zackmdavis@estebank

        Issue actions

          prelude path should not appear in error messages · Issue #56861 · rust-lang/rust