diff options
author | Paul Daniel Faria <[email protected]> | 2020-06-24 03:10:01 +0100 |
---|---|---|
committer | Paul Daniel Faria <[email protected]> | 2020-06-24 03:10:01 +0100 |
commit | 38af81f183504145bd3bf6ba5bc40b3e41e04593 (patch) | |
tree | 61850b0c2a839af097c528d2b91baec3acd9cb8e /crates/ra_hir_def/src/item_scope.rs | |
parent | 471d44e72c54882cff2e00c662ee74d8c7c94234 (diff) |
Account for updated module ids when determining whether a resolution is "changed"
Diffstat (limited to 'crates/ra_hir_def/src/item_scope.rs')
-rw-r--r-- | crates/ra_hir_def/src/item_scope.rs | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/crates/ra_hir_def/src/item_scope.rs b/crates/ra_hir_def/src/item_scope.rs index b03ba939a..571ba3b8a 100644 --- a/crates/ra_hir_def/src/item_scope.rs +++ b/crates/ra_hir_def/src/item_scope.rs | |||
@@ -126,17 +126,40 @@ impl ItemScope { | |||
126 | let mut changed = false; | 126 | let mut changed = false; |
127 | let existing = self.visible.entry(name).or_default(); | 127 | let existing = self.visible.entry(name).or_default(); |
128 | 128 | ||
129 | if existing.types.is_none() && def.types.is_some() { | 129 | match (existing.types, def.types) { |
130 | existing.types = def.types; | 130 | (None, Some(_)) => { |
131 | changed = true; | 131 | existing.types = def.types; |
132 | changed = true; | ||
133 | } | ||
134 | (Some(e), Some(d)) if e.0 != d.0 => { | ||
135 | existing.types = def.types; | ||
136 | changed = true; | ||
137 | } | ||
138 | _ => {} | ||
132 | } | 139 | } |
133 | if existing.values.is_none() && def.values.is_some() { | 140 | |
134 | existing.values = def.values; | 141 | match (existing.values, def.values) { |
135 | changed = true; | 142 | (None, Some(_)) => { |
143 | existing.values = def.values; | ||
144 | changed = true; | ||
145 | } | ||
146 | (Some(e), Some(d)) if e.0 != d.0 => { | ||
147 | existing.values = def.values; | ||
148 | changed = true; | ||
149 | } | ||
150 | _ => {} | ||
136 | } | 151 | } |
137 | if existing.macros.is_none() && def.macros.is_some() { | 152 | |
138 | existing.macros = def.macros; | 153 | match (existing.macros, def.macros) { |
139 | changed = true; | 154 | (None, Some(_)) => { |
155 | existing.macros = def.macros; | ||
156 | changed = true; | ||
157 | } | ||
158 | (Some(e), Some(d)) if e.0 != d.0 => { | ||
159 | existing.macros = def.macros; | ||
160 | changed = true; | ||
161 | } | ||
162 | _ => {} | ||
140 | } | 163 | } |
141 | 164 | ||
142 | changed | 165 | changed |