hax_frontend_exporter/
lib.rs

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