diff --git a/src/imports.rs b/src/imports.rs index 962d82868d7..f4751eb117b 100644 --- a/src/imports.rs +++ b/src/imports.rs @@ -324,11 +324,15 @@ impl UseTree { && a.prefix.to_string().len() > 2 && a.prefix.to_string().starts_with("::"); + let mut modsep = leading_modsep; + for p in &a.prefix.segments { - if let Some(use_segment) = UseSegment::from_path_segment(context, p, leading_modsep) { + if let Some(use_segment) = UseSegment::from_path_segment(context, p, modsep) { result.path.push(use_segment); + modsep = false; } } + match a.kind { UseTreeKind::Glob => { result.path.push(UseSegment::Glob); diff --git a/tests/target/issue-3043.rs b/tests/target/issue-3043.rs new file mode 100644 index 00000000000..b54e244a401 --- /dev/null +++ b/tests/target/issue-3043.rs @@ -0,0 +1,5 @@ +// rustfmt-edition: 2018 + +use ::std::vec::Vec; + +fn main() {}