hax_frontend_exporter/
lib.rs

1#![allow(rustdoc::private_intra_doc_links)]
2#![cfg_attr(feature = "rustc", feature(concat_idents))]
3#![cfg_attr(feature = "rustc", feature(if_let_guard))]
4#![cfg_attr(feature = "rustc", feature(let_chains))]
5#![cfg_attr(feature = "rustc", feature(macro_metavar_expr))]
6#![cfg_attr(feature = "rustc", feature(rustc_private))]
7#![cfg_attr(feature = "rustc", feature(trait_alias))]
8#![cfg_attr(feature = "rustc", feature(type_changing_struct_update))]
9
10macro_rules! cfg_feature_rustc {
11    ($($item:item)*) => {
12        $(
13            #[cfg(feature = "rustc")]
14            $item
15        )*
16    }
17}
18
19cfg_feature_rustc! {
20    // When the feature `rustc` is enabled, we enable the bridges
21    // between rustc ASTs, which are defined in the crates
22    // `rustc_*`. We thus need to import them with `extern crate
23    // rustc_*`
24    extern crate rustc_abi;
25    extern crate rustc_ast;
26    extern crate rustc_ast_pretty;
27    extern crate rustc_attr_data_structures;
28    extern crate rustc_apfloat;
29    extern crate rustc_const_eval;
30    extern crate rustc_data_structures;
31    extern crate rustc_driver;
32    extern crate rustc_hashes;
33    extern crate rustc_errors;
34    extern crate rustc_hir;
35    extern crate rustc_hir_analysis;
36    extern crate rustc_index;
37    extern crate rustc_infer;
38    extern crate rustc_interface;
39    extern crate rustc_middle;
40    extern crate rustc_mir_build;
41    extern crate rustc_session;
42    extern crate rustc_span;
43    extern crate rustc_target;
44    extern crate rustc_trait_selection;
45    extern crate rustc_type_ir;
46    extern crate rustc_lexer;
47
48    mod rustc_utils;
49    pub mod state;
50    mod utils;
51    mod deterministic_hash;
52    pub mod comments;
53}
54
55mod body;
56mod constant_utils;
57pub mod id_table;
58mod types;
59
60mod index_vec;
61mod prelude;
62
63pub use hax_frontend_exporter_options as options;
64pub use prelude::*;
65
66mod sinto;
67mod traits;
68
69pub use hax_adt_into::AdtInto;
70pub use sinto::SInto;