auto merge of : Blei/rust/fix-6698, r=pcwalton

Fixes 
This commit is contained in:
bors 2013-06-03 15:40:29 -07:00
commit 13aa18891c
2 changed files with 39 additions and 3 deletions
src
librustc/middle
test/compile-fail

@ -4595,7 +4595,7 @@ impl Resolver {
}
let name = *path.idents.last();
match self.resolve_definition_of_name_in_module(containing_module,
let def = match self.resolve_definition_of_name_in_module(containing_module,
name,
namespace,
xray) {
@ -4604,9 +4604,28 @@ impl Resolver {
return None;
}
ChildNameDefinition(def) | ImportNameDefinition(def) => {
return Some(def);
def
}
}
};
match containing_module.kind {
TraitModuleKind | ImplModuleKind => {
match self.method_map.find(&name) {
Some(s) => {
match containing_module.def_id {
Some(def_id) if s.contains(&def_id) => {
debug!("containing module was a trait or impl \
and name was a method -> not resolved");
return None;
},
_ => (),
}
},
None => (),
}
},
_ => (),
};
return Some(def);
}
/// Invariant: This must be called only during main resolution, not during

@ -0,0 +1,17 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// issue #6698
fn V() -> bool {
std::clone::Clone::clone(true) //~ ERROR error: unresolved name `std::clone::Clone::clone`.
}
fn main() {}