1 //! HIR (previously known as descriptors) provides a high-level object oriented
2 //! access to Rust code.
4 //! The principal difference between HIR and syntax trees is that HIR is bound
5 //! to a particular crate instance. That is, it has cfg flags and features
6 //! applied. So, the relation between syntax and HIR is many-to-one.
13 mod query_definitions;
15 pub mod source_binder;
33 name::{AsName, KnownName},
34 ids::{DefKind, SourceItemId, SourceFileItemId, SourceFileItems},
38 path::{Path, PathKind},
40 ids::{HirFileId, DefId, DefLoc, MacroCallId, MacroCallLoc},
41 macros::{MacroDef, MacroInput, MacroExpansion},
42 nameres::{ItemMap, PerNs, Namespace, Resolution},
44 impl_block::{ImplBlock, ImplItem},
45 code_model_impl::function::{FnScopes, ScopesWithSyntaxMapping},
48 pub use self::code_model_api::{
49 Crate, CrateDependency,
51 Module, ModuleSource, Problem,
52 Struct, Enum, EnumVariant,
53 Function, FnSignature, ScopeEntryWithSyntax,