keep leading double-colon to respect the 2018 edition of rust's paths
This commit is contained in:
parent
78d4fca2d7
commit
a2bfc026e5
1 changed files with 11 additions and 4 deletions
|
|
@ -324,9 +324,8 @@ impl UseTree {
|
||||||
attrs,
|
attrs,
|
||||||
};
|
};
|
||||||
|
|
||||||
let leading_modsep = context.config.edition() == Edition::Edition2018
|
let leading_modsep =
|
||||||
&& a.prefix.to_string().len() > 2
|
context.config.edition() == Edition::Edition2018 && a.prefix.is_global();
|
||||||
&& a.prefix.to_string().starts_with("::");
|
|
||||||
|
|
||||||
let mut modsep = leading_modsep;
|
let mut modsep = leading_modsep;
|
||||||
|
|
||||||
|
|
@ -367,7 +366,15 @@ impl UseTree {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
UseTreeKind::Simple(ref rename, ..) => {
|
UseTreeKind::Simple(ref rename, ..) => {
|
||||||
let name = rewrite_ident(context, path_to_imported_ident(&a.prefix)).to_owned();
|
// If the path has leading double colons and is composed of only 2 segments, then we
|
||||||
|
// bypass the call to path_to_imported_ident which would get only the ident and
|
||||||
|
// lose the path root, e.g., `that` in `::that`.
|
||||||
|
// The span of `a.prefix` contains the leading colons.
|
||||||
|
let name = if a.prefix.segments.len() == 2 && leading_modsep {
|
||||||
|
context.snippet(a.prefix.span).to_owned()
|
||||||
|
} else {
|
||||||
|
rewrite_ident(context, path_to_imported_ident(&a.prefix)).to_owned()
|
||||||
|
};
|
||||||
let alias = rename.and_then(|ident| {
|
let alias = rename.and_then(|ident| {
|
||||||
if ident.name == "_" {
|
if ident.name == "_" {
|
||||||
// for impl-only-use
|
// for impl-only-use
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue