diff options
Diffstat (limited to 'src/librustc/middle')
| -rw-r--r-- | src/librustc/middle/resolve.rs | 28 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/infer/doc.rs | 2 |
2 files changed, 29 insertions, 1 deletions
diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 320baf33181..f4772d7adc3 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -2499,6 +2499,26 @@ impl Resolver { assert!(import_resolution.outstanding_references >= 1); import_resolution.outstanding_references -= 1; + // record what this import resolves to for later uses in documentation, + // this may resolve to either a value or a type, but for documentation + // purposes it's good enough to just favor one over the other. + match i.value_target { + Some(target) => { + self.def_map.insert(i.value_id, + target.bindings.value_def.get_ref().def); + } + None => {} + } + match i.type_target { + Some(target) => { + match target.bindings.type_def.get_ref().type_def { + Some(def) => { self.def_map.insert(i.type_id, def); } + None => {} + } + } + None => {} + } + debug!("(resolving single import) successfully resolved import"); return Success(()); } @@ -2626,6 +2646,14 @@ impl Resolver { merge_import_resolution(name, name_bindings); } + // Record the destination of this import + match containing_module.def_id { + Some(did) => { + self.def_map.insert(id, DefMod(did)); + } + None => {} + } + debug!("(resolving glob import) successfully resolved import"); return Success(()); } diff --git a/src/librustc/middle/typeck/infer/doc.rs b/src/librustc/middle/typeck/infer/doc.rs index 11bfbc63716..539418dbcb2 100644 --- a/src/librustc/middle/typeck/infer/doc.rs +++ b/src/librustc/middle/typeck/infer/doc.rs @@ -240,4 +240,4 @@ We make use of a trait-like impementation strategy to consolidate duplicated code between subtypes, GLB, and LUB computations. See the section on "Type Combining" below for details. -*/ \ No newline at end of file +*/ |
