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_apfloat;
27    extern crate rustc_const_eval;
28    extern crate rustc_data_structures;
29    extern crate rustc_driver;
30    extern crate rustc_hashes;
31    extern crate rustc_errors;
32    extern crate rustc_hir;
33    extern crate rustc_hir_analysis;
34    extern crate rustc_index;
35    extern crate rustc_infer;
36    extern crate rustc_interface;
37    extern crate rustc_middle;
38    extern crate rustc_mir_build;
39    extern crate rustc_session;
40    extern crate rustc_span;
41    extern crate rustc_target;
42    extern crate rustc_trait_selection;
43    extern crate rustc_type_ir;
44    extern crate rustc_lexer;
45
46    mod rustc_utils;
47    pub mod state;
48    mod utils;
49    mod deterministic_hash;
50    pub mod comments;
51}
52
53mod body;
54mod constant_utils;
55pub mod id_table;
56mod types;
57
58mod index_vec;
59mod prelude;
60
61pub use hax_frontend_exporter_options as options;
62pub use prelude::*;
63
64mod sinto;
65mod traits;
66
67pub use hax_adt_into::AdtInto;
68pub use sinto::SInto;