File tree 1 file changed +25
-3
lines changed
1 file changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -212,8 +212,8 @@ http://doc.rust-lang.org/reference.html#trait-objects
212
212
"## ,
213
213
214
214
E0034 : r##"
215
- The compiler doesn't know what method to call because more than one does
216
- have the same prototype. Example:
215
+ The compiler doesn't know what method to call because more than one method
216
+ has the same prototype. Example:
217
217
218
218
```
219
219
struct Test;
@@ -230,7 +230,7 @@ impl Trait1 for Test { fn foo() {} }
230
230
impl Trait2 for Test { fn foo() {} }
231
231
232
232
fn main() {
233
- Test::foo() // error, what foo() to call?
233
+ Test::foo() // error, which foo() to call?
234
234
}
235
235
```
236
236
@@ -250,6 +250,28 @@ fn main() {
250
250
Test::foo() // and now that's good!
251
251
}
252
252
```
253
+
254
+ However, a better solution would be using fully explicit naming of type and
255
+ trait:
256
+
257
+ ```
258
+ struct Test;
259
+
260
+ trait Trait1 {
261
+ fn foo();
262
+ }
263
+
264
+ trait Trait2 {
265
+ fn foo();
266
+ }
267
+
268
+ impl Trait1 for Test { fn foo() {} }
269
+ impl Trait2 for Test { fn foo() {} }
270
+
271
+ fn main() {
272
+ <Test as Trait1>::foo()
273
+ }
274
+ ```
253
275
"## ,
254
276
255
277
E0035 : r##"
You can’t perform that action at this time.
0 commit comments