Struct ra_ap_hir_expand::HirFileId [−][src]
pub struct HirFileId(_);
Expand description
Input to the analyzer is a set of files, where each file is identified by
FileId
and contains source code. However, another source of source code in
Rust are macros: each macro can be thought of as producing a “temporary
file”. To assign an id to such a file, we use the id of the macro call that
produced the file. So, a HirFileId
is either a FileId
(source code
written by user), or a MacroCallId
(source code produced by macro).
What is a MacroCallId
? Simplifying, it’s a HirFileId
of a file
containing the call plus the offset of the macro call in the file. Note that
this is a recursive definition! However, the size_of of HirFileId
is
finite (because everything bottoms out at the real FileId
) and small
(MacroCallId
uses the location interning. You can check details here:
https://en.wikipedia.org/wiki/String_interning).
Implementations
For macro-expansion files, returns the file original source file the expansion originated from.
If this is a macro call, returns the syntax node of the call.
Return expansion information if it is a macro-expansion file
Indicate it is macro file generated for builtin derive
Return whether this file is an include macro
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for HirFileId
impl UnwindSafe for HirFileId
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more