1 #![cfg_attr(feature = "nightly", feature(test))]
2 #![feature(control_flow_enum)]
3 #![feature(try_trait_v2)]
4 
5 #[macro_use]
6 extern crate log;
7 #[macro_use]
8 extern crate lazy_static;
9 #[macro_use]
10 extern crate bitflags;
11 
12 #[macro_use]
13 extern crate derive_more;
14 
15 #[macro_use]
16 mod testutils;
17 #[macro_use]
18 mod util;
19 mod ast;
20 mod ast_types;
21 mod codecleaner;
22 mod codeiter;
23 mod core;
24 mod fileres;
25 mod matchers;
26 #[cfg(feature = "metadata")]
27 mod metadata;
28 mod nameres;
29 mod primitive;
30 mod project_model;
31 mod scopes;
32 mod snippets;
33 mod typeinf;
34 
35 pub use crate::ast_types::PathSearch;
36 pub use crate::core::{
37     complete_from_file, complete_fully_qualified_name, find_definition, is_use_stmt, to_coords,
38     to_point,
39 };
40 pub use crate::core::{
41     BytePos, ByteRange, Coordinate, FileCache, FileLoader, Location, Match, MatchType, Session,
42 };
43 pub use crate::primitive::PrimKind;
44 pub use crate::project_model::{Edition, ProjectModelProvider};
45 pub use crate::snippets::snippet_for_match;
46 pub use crate::util::expand_ident;
47 
48 pub use crate::util::{get_rust_src_path, RustSrcPathError};
49 
50 #[cfg(all(feature = "nightly", test))]
51 mod benches;
52