### What it does Checks for modules that have the same name as their parent module ### Why is this bad? A typical beginner mistake is to have `mod foo;` and again `mod foo { .. }` in `foo.rs`. The expectation is that items inside the inner `mod foo { .. }` are then available through `foo::x`, but they are only available through `foo::foo::x`. If this is done on purpose, it would be better to choose a more representative module name. ### Example ``` // lib.rs mod foo; // foo.rs mod foo { ... } ```