Crate mun_hir

source ·
Expand description

HIR provides high-level, object-oriented access to Mun code. It is constructed by first parsing Mun code with the mun_syntax crate and then it is lowered into HIR constructs, names are resolved, and type checking is performed. HIR is the input for both the compiler as well as the language server.

Re-exports

pub use salsa;
pub use crate::diagnostics::Diagnostic;
pub use crate::diagnostics::DiagnosticSink;

Modules

Semantics provides the means to get semantic information from syntax trees that are not necessarily part of the compilation process. This is useful when you want to extract information from a modified source file in the context of the current state.

Macros

Structs

Representative struct for the query group.
The body of an item (function, const etc.).
Representative struct for the query group.
A field of a Struct.
FileId is an integer which uniquely identifies a file. File paths are messy and system-dependent, so most of the code should work directly with FileId, without inspecting the path. The mapping between FileId and path and SourceRoot is constant. A file rename is represented as a pair of deletion/creation.
Representative struct for the query group.
InFile<T> stores a value of T inside a particular file/syntax tree.
The result of type inference: A mapping from expressions and patterns to types.
Representative struct for the query group.
Represents an id of a module inside a package.
Name is a wrapper around string, which is used in mun_hir for both references and declarations.
A Package describes a single package.
Represents the id of a single package, all packages have a unique id, the main package and all dependent packages.
Represents information about a set of packages in a compilation
Representative struct for the query group.
Files are grouped into source roots. A source root is a directory on the file systems which is watched for changes. Typically it corresponds to a single library.
A list of substitutions for generic parameters.
External representation of a type. This should be cheap to clone.

Enums

Similar to ast::PatKind
Represents the kind of memory management a struct uses.
A kind of type.
Visibility of an item, modules resolved.

Traits

The AstDatabase provides queries that transform text from the SourceDatabase into an Abstract Syntax Tree (AST).
A trait implemented for items that can be related back to their source. The HasSource::source method returns the source location of its instance.
The InternDatabase maps certain datastructures to ids. These ids refer to instances of concepts like a Function, Struct or TypeAlias in a semi-stable way.
Database which stores all significant input facts: source code and project model.

Functions

Returns a resolver applicable to the specified expression

Type Definitions