File tree 2 files changed +39
-3
lines changed
2 files changed +39
-3
lines changed Original file line number Diff line number Diff line change @@ -4595,7 +4595,7 @@ impl Resolver {
4595
4595
}
4596
4596
4597
4597
let name = * path. idents. last( ) ;
4598
- match self . resolve_definition_of_name_in_module( containing_module,
4598
+ let def = match self . resolve_definition_of_name_in_module( containing_module,
4599
4599
name,
4600
4600
namespace,
4601
4601
xray) {
@@ -4604,9 +4604,28 @@ impl Resolver {
4604
4604
return None ;
4605
4605
}
4606
4606
ChildNameDefinition ( def) | ImportNameDefinition ( def) => {
4607
- return Some ( def) ;
4607
+ def
4608
4608
}
4609
- }
4609
+ } ;
4610
+ match containing_module. kind {
4611
+ TraitModuleKind | ImplModuleKind => {
4612
+ match self . method_map. find( & name) {
4613
+ Some ( s) => {
4614
+ match containing_module. def_id {
4615
+ Some ( def_id) if s. contains( & def_id) => {
4616
+ debug ! ( "containing module was a trait or impl \
4617
+ and name was a method -> not resolved") ;
4618
+ return None ;
4619
+ } ,
4620
+ _ => ( ) ,
4621
+ }
4622
+ } ,
4623
+ None => ( ) ,
4624
+ }
4625
+ } ,
4626
+ _ => ( ) ,
4627
+ } ;
4628
+ return Some ( def) ;
4610
4629
}
4611
4630
4612
4631
/// Invariant: This must be called only during main resolution, not during
Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ // issue #6698
12
+
13
+ fn V ( ) -> bool {
14
+ std:: clone:: Clone :: clone ( true ) //~ ERROR error: unresolved name `std::clone::Clone::clone`.
15
+ }
16
+
17
+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments