Skip to content

--cfg parse failures produces hard to understand errors #31496

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
brson opened this issue Feb 8, 2016 · 1 comment · Fixed by #64467
Closed

--cfg parse failures produces hard to understand errors #31496

brson opened this issue Feb 8, 2016 · 1 comment · Fixed by #64467
Labels
A-diagnostics Area: Messages for errors, warnings, and lints A-parser Area: The lexing & parsing of Rust source code to an AST C-enhancement Category: An issue proposing an enhancement or a PR with one.

Comments

@brson
Copy link
Contributor

brson commented Feb 8, 2016

rustc --cfg "a{" ../src/test/run-pass/hello.rs

produces:

cfgspec:1:3: 1:3 error: this file contains an un-closed delimiter
cfgspec:1 a{
            ^
cfgspec:1:2: 1:3 help: did you mean to close this delimiter?
cfgspec:1 a{
           ^

It's clear that the way this is parsed is by constructing a fake source file and running it through the main parser. This is a confusing and ugly way to report these errors. Instead the errors should be converted to display in a way that makes it clear that what isn't parsing is the cfg provided on the command line. Perhaps like

error: invalid cfg spec passed on the command line: `a{`

Translating all possible parse errors to something that makes sense in a non-file context may be tricky, so this example does lose information about what the error was.

cc @nrc since you've done some parser refactoring recently.

@brson brson added the A-parser Area: The lexing & parsing of Rust source code to an AST label Feb 8, 2016
@brson brson changed the title --print cfg parse failures produces hard to understand errors --cfg parse failures produces hard to understand errors Feb 8, 2016
@brson brson added the A-diagnostics Area: Messages for errors, warnings, and lints label Feb 8, 2016
@birkenfeld
Copy link
Contributor

Current compiler (after fix for #31497) says (last line is new):

cfgspec:1:3: 1:3 error: this file contains an un-closed delimiter
cfgspec:1 a{
            ^
cfgspec:1:2: 1:3 help: did you mean to close this delimiter?
cfgspec:1 a{
           ^
error: invalid --cfg argument: a{

@steveklabnik steveklabnik removed the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Mar 9, 2017
@Mark-Simulacrum Mark-Simulacrum added the C-enhancement Category: An issue proposing an enhancement or a PR with one. label Jul 24, 2017
@bors bors closed this as completed in 75db571 Sep 16, 2019
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-diagnostics Area: Messages for errors, warnings, and lints A-parser Area: The lexing & parsing of Rust source code to an AST C-enhancement Category: An issue proposing an enhancement or a PR with one.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants