Static rustc_lint::builtin::SPECIAL_MODULE_NAME
source · [−]pub static SPECIAL_MODULE_NAME: &'static Lint
Expand description
The special_module_name
lint detects module
declarations for files that have a special meaning.
Example
ⓘ
mod lib;
fn main() {
lib::run();
}
{{produces}}
Explanation
Cargo recognizes lib.rs
and main.rs
as the root of a
library or binary crate, so declaring them as modules
will lead to miscompilation of the crate unless configured
explicitly.
To access a library from a binary target within the same crate,
use your_crate_name::
as the path path instead of lib::
:
ⓘ
// bar/src/lib.rs
fn run() {
// ...
}
// bar/src/main.rs
fn main() {
bar::run();
}
Binary targets cannot be used as libraries and so declaring one as a module is not allowed.