| Two items of the same name cannot be imported without rebinding one of the |
| items under a new local name. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0252 |
| use foo::baz; |
| use bar::baz; // error, do `use bar::baz as quux` instead |
| |
| fn main() {} |
| |
| mod foo { |
| pub struct baz; |
| } |
| |
| mod bar { |
| pub mod baz {} |
| } |
| ``` |
| |
| You can use aliases in order to fix this error. Example: |
| |
| ``` |
| use foo::baz as foo_baz; |
| use bar::baz; // ok! |
| |
| fn main() {} |
| |
| mod foo { |
| pub struct baz; |
| } |
| |
| mod bar { |
| pub mod baz {} |
| } |
| ``` |
| |
| Or you can reference the item with its parent: |
| |
| ``` |
| use bar::baz; |
| |
| fn main() { |
| let x = foo::baz; // ok! |
| } |
| |
| mod foo { |
| pub struct baz; |
| } |
| |
| mod bar { |
| pub mod baz {} |
| } |
| ``` |