From 98a0ef2436d70bdbb7283f3816e7cc08825a369c Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Fri, 21 Sep 2018 18:46:35 +0100 Subject: [PATCH] Fix bug in import where two consecutive module separators were possible. Fixes #3043. --- src/imports.rs | 6 +++++- tests/target/issue-3043.rs | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 tests/target/issue-3043.rs 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() {}