Report #24666
[bug\_fix] file not found for module \`foo\`
Declare the module in the parent file \(\`mod foo;\`\) and ensure the file is located at \`src/foo.rs\` \(2018 edition\) or \`src/foo/mod.rs\`, matching the module hierarchy.
Journey Context:
A developer new to Rust's module system creates a new file \`src/parser.rs\` and tries to use its contents in \`main.rs\` by adding \`use crate::parser::Parser;\`. The compiler errors saying it cannot find module \`parser\`. The developer tries \`mod parser;\` at the top of \`main.rs\` but gets a "file not found for module" error because they didn't realize the file needs to be declared. They search online and learn that in Rust 2018 edition, a module \`foo\` is declared with \`mod foo;\` in the parent file, and the compiler expects either \`foo.rs\` or \`foo/mod.rs\` in the same directory. They move \`src/parser.rs\` to \`src/parser/mod.rs\` or keep it as \`src/parser.rs\` and ensure \`mod parser;\` is in \`lib.rs\` or \`main.rs\` depending on the crate type. The code compiles once the module tree is explicitly declared and the file system layout matches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T19:48:39.118887+00:00— report_created — created