1#![no_std]
2#![feature(allocator_api)]
3#![feature(alloc_layout_extra)]
4#![feature(coerce_unsized)]
5#![feature(unsize)]
6#![feature(ptr_metadata)]
7#![feature(ptr_as_uninit)]
8#![feature(layout_for_ptr)]
9#![feature(slice_ptr_get)]
10#![feature(specialization)]
11#![feature(rustc_attrs)]
12#![feature(debug_closure_helpers)]
13#![feature(trait_alias)]
14#![feature(try_trait_v2)]
15#![feature(try_trait_v2_residual)]
16#![feature(tuple_trait)]
17#![feature(fn_traits)]
18#![feature(unboxed_closures)]
19#![feature(box_into_inner)]
20#![feature(const_type_id)]
21#![feature(exact_size_is_empty)]
22#![feature(generic_const_exprs)]
23#![feature(clone_to_uninit)]
24#![feature(new_range_api)]
25#![feature(std_internals)] #![feature(extend_one)]
28#![feature(extend_one_unchecked)]
29#![feature(iter_advance_by)]
30#![feature(iter_next_chunk)]
31#![feature(iter_collect_into)]
32#![feature(trusted_len)]
33#![feature(never_type)]
34#![feature(maybe_uninit_slice)]
35#![feature(maybe_uninit_array_assume_init)]
36#![feature(maybe_uninit_uninit_array_transpose)]
37#![feature(array_into_iter_constructors)]
38#![feature(slice_range)]
39#![feature(slice_swap_unchecked)]
40#![feature(hasher_prefixfree_extras)]
41#![allow(incomplete_features)]
43#![allow(internal_features)]
44#![deny(warnings)]
45
46extern crate alloc;
47
48#[cfg(feature = "std")]
49extern crate std;
50
51extern crate self as midenc_hir;
52
53pub use compact_str::{
54 CompactString as SmallStr, CompactStringExt as SmallStrExt, ToCompactString as ToSmallStr,
55};
56pub use hashbrown;
57pub use smallvec::{smallvec, SmallVec, ToSmallVec};
58
59pub type FxHashMap<K, V> = hashbrown::HashMap<K, V, rustc_hash::FxBuildHasher>;
60pub type FxHashSet<K> = hashbrown::HashSet<K, rustc_hash::FxBuildHasher>;
61pub use rustc_hash::{FxBuildHasher, FxHasher};
62
63pub mod adt;
64mod any;
65mod attributes;
66pub mod constants;
67pub mod demangle;
68pub mod derive;
69pub mod dialects;
70mod direction;
71mod eq;
72mod folder;
73pub mod formatter;
74mod hash;
75mod ir;
76pub mod itertools;
77pub mod matchers;
78pub mod pass;
79pub mod patterns;
80mod program_point;
81pub mod version;
82
83pub use midenc_session::diagnostics;
84
85pub use self::{
86 attributes::{
87 markers::*, ArrayAttr, Attribute, AttributeSet, AttributeValue, DictAttr, Overflow,
88 SetAttr, Visibility,
89 },
90 direction::{Backward, Direction, Forward},
91 eq::DynPartialEq,
92 folder::OperationFolder,
93 hash::{DynHash, DynHasher},
94 ir::*,
95 itertools::IteratorExt,
96 patterns::{Rewriter, RewriterExt},
97 program_point::{Position, ProgramPoint},
98};