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;
34 name::{AsName, KnownName},
35 ids::{DefKind, SourceItemId, SourceFileItems},
39 path::{Path, PathKind},
41 ids::{HirFileId, DefId, DefLoc, MacroCallId, MacroCallLoc},
42 macros::{MacroDef, MacroInput, MacroExpansion},
43 nameres::{ItemMap, PerNs, Namespace, Resolution},
45 impl_block::{ImplBlock, ImplItem},
46 code_model_impl::function::{FnScopes, ScopesWithSyntaxMapping},
49 pub use self::code_model_api::{
50 Crate, CrateDependency,
52 Module, ModuleSource, Problem,
53 Struct, Enum, EnumVariant,
54 Function, FnSignature, ScopeEntryWithSyntax,