1mod analysis_state;
14mod function_analyzer;
15mod inference;
16mod inst;
17mod intern_pool;
18pub mod layout;
19mod param_arena;
20mod scope;
21mod sema;
22mod sema_context;
23pub mod specialize;
24mod types;
25
26pub use analysis_state::{AnalysisStateRemapping, FunctionAnalysisState, MergedAnalysisState};
27pub use function_analyzer::{
28 FunctionAnalyzer, FunctionAnalyzerOutput, FunctionOutputRemapping, MergedFunctionOutput,
29};
30pub use inference::{
31 Constraint, ConstraintContext, ConstraintGenerator, ExprInfo, FunctionSig, InferType,
32 LocalVarInfo, MethodSig, ParamVarInfo, Substitution, TypeVarAllocator, TypeVarId,
33 UnificationError, Unifier, UnifyResult,
34};
35pub use inst::{
36 Air, AirArgMode, AirCallArg, AirInst, AirInstData, AirParamMode, AirPattern, AirPlace,
37 AirPlaceBase, AirPlaceRef, AirProjection, AirRef,
38};
39pub use intern_pool::{
40 EnumData, InternedType, StructData, TypeData, TypeInternPool, TypeInternPoolStats,
41};
42pub use layout::{DiscriminantStrategy, Layout, NicheRange, layout_of};
43pub use param_arena::{ParamArena, ParamRange};
44pub use sema::module_path::ModulePath;
45pub use sema::{
46 AnalyzedFunction, ConstValue, FunctionInfo, GatherOutput, InterfaceVtables, MethodInfo, Sema,
47 SemaOutput,
48};
49pub use sema_context::{
52 InferenceContext as SemaContextInferenceContext, ModuleRegistry, SemaContext,
53};
54pub use types::{
55 ArrayTypeId, EnumDef, EnumId, EnumVariantDef, IfaceTy, InterfaceDef, InterfaceId,
56 InterfaceMethodReq, ModuleDef, ModuleId, MutRefTypeId, MutSliceTypeId, PtrConstTypeId,
57 PtrMutTypeId, ReceiverMode, RefTypeId, SliceTypeId, StructDef, StructField, StructId, Type,
58 TypeKind, parse_array_type_syntax,
59};
60
61pub const PARAM_SLOT_MARKER: u32 = 0x4000_0000;