File: method_name_shadowing.rs

package info (click to toggle)
rust-auto-impl 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 556 kB
  • sloc: makefile: 2; sh: 1
file content (29 lines) | stat: -rw-r--r-- 605 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use auto_impl::auto_impl;

trait AllExt {
    fn foo(&self, _: i32);
}

impl<T> AllExt for T {
    fn foo(&self, _: i32) {}
}

// This will expand to:
//
//     impl<T: Foo> Foo for &T {
//         fn foo(&self, _x: bool) {
//             T::foo(self, _x)
//         }
//     }
//
// With this test we want to make sure, that the call `T::foo` is always
// unambiguous. Luckily, Rust is nice here. And if we only know `T: Foo`, then
// other global functions are not even considered. Having a test for this
// doesn't hurt though.
#[auto_impl(&)]
trait Foo {
    fn foo(&self, _x: bool);
}


fn main() {}