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 None => return Ok(None),
20 mod query_definitions;
22 pub mod source_binder;
40 name::{AsName, KnownName},
41 ids::{DefKind, SourceItemId, SourceFileItemId, SourceFileItems},
45 path::{Path, PathKind},
47 ids::{HirFileId, DefId, DefLoc, MacroCallId, MacroCallLoc},
48 macros::{MacroDef, MacroInput, MacroExpansion},
49 nameres::{ItemMap, PerNs, Namespace, Resolution},
51 impl_block::{ImplBlock, ImplItem},
52 code_model_impl::function::{FnScopes, ScopesWithSyntaxMapping},
55 pub use self::code_model_api::{
56 Crate, CrateDependency,
58 Module, ModuleSource, Problem,
59 Struct, Enum, VariantData, StructField,
60 Function, FnSignature,