Maybe it works
Still compiling, but I think I have it!
This commit is contained in:
parent
168615f869
commit
69a5c379df
1 changed files with 13 additions and 3 deletions
|
|
@ -896,6 +896,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
|
|||
|
||||
match target {
|
||||
Some(ref target) if target.shadowable != Shadowable::Always => {
|
||||
use syntax::ast_map::NodeItem;
|
||||
let ns_word = match namespace {
|
||||
TypeNS => "type",
|
||||
ValueNS => "value",
|
||||
|
|
@ -904,12 +905,21 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
|
|||
"a {} named `{}` has already been imported \
|
||||
in this module", ns_word,
|
||||
&token::get_name(name));
|
||||
let use_id = import_resolution.id(namespace);
|
||||
if let NodeItem(item) = self.resolver.ast_map.get(use_id) {
|
||||
// Assert item.node is ItemUse
|
||||
// I feel like this should maybe mention the type,
|
||||
// as it's otherwise a bit of work to look up...
|
||||
// use syntax::ast::Item;
|
||||
span_note!(self.resolver.session, item.span,
|
||||
"Previously import of {} `{}` here",
|
||||
ns_word, token::get_name(name));
|
||||
}
|
||||
// Also showing the definition is reasonable?
|
||||
if let Some(sp) = target.bindings.span_for_namespace(namespace) {
|
||||
span_note!(self.resolver.session, sp,
|
||||
"first import of {} `{}` here",
|
||||
"definition of {} `{}` here",
|
||||
ns_word, token::get_name(name));
|
||||
} else {
|
||||
span_note!(self.resolver.session, import_span, "I can't find where it was previously imported");
|
||||
}
|
||||
}
|
||||
Some(_) | None => {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue