File tree 1 file changed +22
-3
lines changed
1 file changed +22
-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
You can’t perform that action at this time.
0 commit comments