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