同じメソッドを呼ぶ場合、[[rustc]]にどれを使用したいのか伝えるため、明確にフルパスを指定する記法。
```rust
<Type as Trait>::function(receiver_if_method, next_arg, ...);
```
たとえば以下のような`Say`[[トレイト]]と`Human`構造体があったとき
```rust
trait Say {
fn hello() -> String;
}
struct Human {}
impl Say for Human {
fn hello() -> String {
String::from("Hello")
}
}
impl Human {
fn hello() -> String {
String::from("こんにちは")
}
}
```
通常の書き方と[[フルパス記法]]はそれぞれ以下のようになる。
```rust
fn main() {
// 通常の書き方 -> こんにちは
eprintln!("Human::hello() = {:?}", Human::hello());
// フルパス記法 -> Hello
eprintln!("Human::hello() = {:?}", <Human as Say>::hello());
}
```