RS.CLIPPY.MODULE_INCEPTION

Modules that have the same name as their parent module

This checker is a Clippy lint created by The Rust Project Contributors. The documentation shown here is a copy of the original documentation for: module_inception. Copyright ©2025 The Rust Team. All rights reserved.

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 {
    ...
}

Configuration

  • allow-private-module-inception: Whether to allow module inception if it's not public.

    (default: false)