]> git.lizzy.rs Git - rust.git/blob - crates/ra_hir/src/lib.rs
Implement beginnings of generics
[rust.git] / crates / ra_hir / src / lib.rs
1 //! HIR (previously known as descriptors) provides a high-level object oriented
2 //! access to Rust code.
3 //!
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.
7
8 pub mod db;
9 #[cfg(test)]
10 mod mock;
11 #[macro_use]
12 mod marks;
13 mod query_definitions;
14 mod path;
15 pub mod source_binder;
16
17 mod ids;
18 mod macros;
19 mod name;
20 mod module_tree;
21 mod nameres;
22 mod adt;
23 mod type_ref;
24 mod ty;
25 mod impl_block;
26 mod expr;
27 mod generics;
28
29 mod code_model_api;
30 mod code_model_impl;
31
32 use crate::{
33     db::HirDatabase,
34     name::{AsName, KnownName},
35     ids::{DefKind, SourceItemId, SourceFileItems},
36 };
37
38 pub use self::{
39     path::{Path, PathKind},
40     name::Name,
41     ids::{HirFileId, DefId, DefLoc, MacroCallId, MacroCallLoc},
42     macros::{MacroDef, MacroInput, MacroExpansion},
43     nameres::{ItemMap, PerNs, Namespace, Resolution},
44     ty::Ty,
45     impl_block::{ImplBlock, ImplItem},
46     code_model_impl::function::{FnScopes, ScopesWithSyntaxMapping},
47 };
48
49 pub use self::code_model_api::{
50     Crate, CrateDependency,
51     Def,
52     Module, ModuleSource, Problem,
53     Struct, Enum, EnumVariant,
54     Function, FnSignature, ScopeEntryWithSyntax,
55     StructField,
56     Static, Const,
57     Trait, Type,
58 };