aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/item_scope.rs
diff options
context:
space:
mode:
authorPaul Daniel Faria <[email protected]>2020-06-24 03:10:01 +0100
committerPaul Daniel Faria <[email protected]>2020-06-24 03:10:01 +0100
commit38af81f183504145bd3bf6ba5bc40b3e41e04593 (patch)
tree61850b0c2a839af097c528d2b91baec3acd9cb8e /crates/ra_hir_def/src/item_scope.rs
parent471d44e72c54882cff2e00c662ee74d8c7c94234 (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.rs41
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