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.
11 mod query_definitions;
13 pub mod source_binder;
36 name::{AsName, KnownName},
37 ids::{DefKind, SourceItemId, SourceFileItems},
41 path::{Path, PathKind},
43 ids::{HirFileId, DefId, DefLoc, MacroCallId, MacroCallLoc},
44 macros::{MacroDef, MacroInput, MacroExpansion},
45 nameres::{ItemMap, PerNs, Namespace, Resolution},
47 impl_block::{ImplBlock, ImplItem},
48 code_model_impl::function::{FnScopes, ScopesWithSyntaxMapping},
49 docs::{Docs, Documentation}
52 pub use self::code_model_api::{
53 Crate, CrateDependency,
55 Module, ModuleSource, Problem,
56 Struct, Enum, EnumVariant,
57 Function, FnSignature, ScopeEntryWithSyntax,