Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions library/core/src/macros/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1273,6 +1273,19 @@ pub(crate) mod builtin {
/// first macro invocation leading up to the invocation of the `file!`
/// macro.
///
/// The file name is derived from the crate root's source path passed to the Rust compiler
/// and the sequence the compiler takes to get from the crate root to the
/// module containing `file!`, modified by any flags passed to the Rust compiler (e.g.
/// `--remap-path-prefix`). If the crate's source path is relative, the initial base
/// directory will be the working directory of the Rust compiler. For example, if the source
/// path passed to the compiler is `./src/lib.rs` which has a `mod foo;` with a source path of
/// `src/foo/mod.rs`, then calling `file!` inside `mod foo;` will return `./src/foo/mod.rs`.
///
/// Future compiler options might make further changes to the behavior of `file!`,
/// including potentially making it entirely empty. Code (e.g. test libraries)
/// relying on `file!` producing an openable file path would be incompatible
/// with such options, and might wish to recommend not using those options.
///
/// # Examples
///
/// ```
Expand Down
Loading