File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed 
src/librustc_error_codes/error_codes Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ An associated function for a trait was defined to be a method (i.e., to take a
22` self `  parameter), but an implementation of the trait declared the same function
33to be static.
44
5- Here's an  example of this error :
5+ Erroneous code  example:
66
77``` compile_fail,E0186 
88trait Foo { 
@@ -17,3 +17,19 @@ impl Foo for Bar {
1717    fn foo() {} 
1818} 
1919``` 
20+ 
21+ When a type implements a trait's associated function, it has to use the same
22+ signature. So in this case, since ` Foo::foo `  takes ` self `  as argument and
23+ does not return anything, its implementation on ` Bar `  should be the same:
24+ 
25+ ``` 
26+ trait Foo { 
27+     fn foo(&self); 
28+ } 
29+ 
30+ struct Bar; 
31+ 
32+ impl Foo for Bar { 
33+     fn foo(&self) {} // ok! 
34+ } 
35+ ``` 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments