Skip to content

rustc bad cli arg error messages doesn't respect --error-format=json #140101

@jieyouxu

Description

@jieyouxu
Member

Not surprising (and I don't really consider this a bug necessarily), but something like

$ rustc --error-format=json --emit
error: Argument to option 'emit' missing
       Usage:
           --emit [asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir]
                               Comma separated list of types of output for the
                               compiler to emit

doesn't respect --error-format=json. I think that is entirely reasonable, since --error-format itself might be missing its value or get passed some invalid value 🤷

Just opening an issue to note this, because the implication for ui tests is that this obviously won't get picked up by compiletest for the //~? error annotations which are based on JSON diagnostic messages.

For test writers, the implication is simply that you can't use

//@ compile-flags: --emit

//~? ERROR: Argument to option 'emit' missing

and you'll need to use

//@ compile-flags: --emit
//@ error-pattern: Argument to option 'emit' missing

as an fallback.

Activity

added
A-CLIArea: Command-line interface (CLI) to the compiler
A-compiletestArea: The compiletest test runner
C-discussionCategory: Discussion or questions that doesn't represent real issues.
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
on Apr 21, 2025
added
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Apr 21, 2025
removed
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Apr 21, 2025
bjorn3

bjorn3 commented on Apr 21, 2025

@bjorn3
Member

This error message is emitted at

early_dcx.early_fatal(msg.unwrap_or_else(|| e.to_string()));
which doesn't have access to the parsed --error-format as parsing arguments failed. I don't think there is an easy solution for this.

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-CLIArea: Command-line interface (CLI) to the compilerA-compiletestArea: The compiletest test runnerA-diagnosticsArea: Messages for errors, warnings, and lintsC-discussionCategory: Discussion or questions that doesn't represent real issues.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

        @bjorn3@jieyouxu@rustbot

        Issue actions

          rustc bad cli arg error messages doesn't respect `--error-format=json` · Issue #140101 · rust-lang/rust