diff options
Diffstat (limited to 'crates/ide_db/src/helpers/insert_use.rs')
-rw-r--r-- | crates/ide_db/src/helpers/insert_use.rs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/crates/ide_db/src/helpers/insert_use.rs b/crates/ide_db/src/helpers/insert_use.rs index aa61c5bcb..10bbafe77 100644 --- a/crates/ide_db/src/helpers/insert_use.rs +++ b/crates/ide_db/src/helpers/insert_use.rs | |||
@@ -120,15 +120,19 @@ impl ImportScope { | |||
120 | if eq_visibility(prev_vis, curr_vis.clone()) && eq_attrs(prev_attrs, curr_attrs.clone()) | 120 | if eq_visibility(prev_vis, curr_vis.clone()) && eq_attrs(prev_attrs, curr_attrs.clone()) |
121 | { | 121 | { |
122 | if let Some((prev_path, curr_path)) = prev.path().zip(curr.path()) { | 122 | if let Some((prev_path, curr_path)) = prev.path().zip(curr.path()) { |
123 | if let Some(_) = common_prefix(&prev_path, &curr_path) { | 123 | if let Some((prev_prefix, _)) = common_prefix(&prev_path, &curr_path) { |
124 | if prev.use_tree_list().is_none() && curr.use_tree_list().is_none() { | 124 | if prev.use_tree_list().is_none() && curr.use_tree_list().is_none() { |
125 | // Same prefix but no use tree lists so this has to be of item style. | 125 | let prefix_c = prev_prefix.qualifiers().count(); |
126 | break ImportGranularityGuess::Item; // this overwrites CrateOrModule, technically the file doesn't adhere to anything here. | 126 | let curr_c = curr_path.qualifiers().count() - prefix_c; |
127 | } else { | 127 | let prev_c = prev_path.qualifiers().count() - prefix_c; |
128 | // Same prefix with item tree lists, has to be module style as it | 128 | if curr_c <= 1 || prev_c <= 1 { |
129 | // can't be crate style since the trees wouldn't share a prefix then. | 129 | // Same prefix but no use tree lists so this has to be of item style. |
130 | break ImportGranularityGuess::Module; | 130 | break ImportGranularityGuess::Item; // this overwrites CrateOrModule, technically the file doesn't adhere to anything here. |
131 | } | ||
131 | } | 132 | } |
133 | // Same prefix with item tree lists, has to be module style as it | ||
134 | // can't be crate style since the trees wouldn't share a prefix then. | ||
135 | break ImportGranularityGuess::Module; | ||
132 | } | 136 | } |
133 | } | 137 | } |
134 | } | 138 | } |