-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyC-bugCategory: This is a bug.Category: This is a bug.
Description
rust/src/librustc_resolve/lib.rs
Lines 3703 to 3706 in 44990e5
if let Ok(snippet) = cm.span_to_snippet(binding.span) { | |
err.span_suggestion(binding.span, | |
rename_msg, | |
format!("{} as Other{}", snippet, name)); |
Trying to re-import std
or any other crate, I get a suggestion like this:
14 | extern crate std;
| ^^^^^^^^^^^^^^^^^ `std` reimported here
|
= note: `std` must be defined only once in the type namespace of this module
help: You can use `as` to change the binding name of the import
|
14 | extern crate std; as Otherstd
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The problem is in the formatting of the suggestion, where SEMICOLON (;
) is placed before the as
keyword, like this extern crate std; as Otherstd
instead of extern crate std as Otherstd;
.
The suggestion doesn't exist in stable or beta, so this affects only nightly at the moment.
Original commit: ff83240
Original PR: #45660
/cc @Cldfire
Cldfire and estebank
Metadata
Metadata
Assignees
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyC-bugCategory: This is a bug.Category: This is a bug.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
behnam commentedon Nov 6, 2017
Looks like the feature works fine for
use
statements, but has this bug forextern crate
ones. Maybe worth adding a test case forextern crate
, too.Cldfire commentedon Nov 6, 2017
Whoops! Thanks for noticing that.
I should be able to look into fixing this tonight (~12 hours from now) or tomorrow. @estebank, may I ask if you have any comments or input as to how this should be fixed before I do so?
estebank commentedon Nov 6, 2017
@Cldfire what I would do is change the
binding.span
forextern crate
statements to not include the semicolon. To do so, it is probably enough to modifyparse_item_extern_crate
inlibsyntax/parse/parser.rs
to take theself.prev_span
before parsing the semicolon. That change would probably affect other ui tests as it would change underlines involvingextern crate
statements, and you should check if there're any regressions doing that change.Cldfire commentedon Nov 6, 2017
Gotcha, thanks for the advice.
extern crate
conflict resolution help #45820extern crate
conflict resolution help #47767