1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// TypeError is a diagnostic struct (only allocated on the error path) and
// intentionally carries rich context. Suppressing because boxing 200+
// return sites would add noise with no performance benefit.
//! Type checking for the Assura contract language.
//!
//! Builds a `TypeEnv` (type environment) from a `ResolvedFile` by mapping
//! each symbol in the symbol table to its `Type`. For T013 this creates the
//! scaffolding: type environment construction and the `type_check` entry
//! point. Actual expression-level type checking (T014-T018) builds on this.
/// Structural checkers: linearity, typestate, effects, info-flow, generics, etc.
///
/// See `CHECKER-LAYERS.md` for how `checkers/`, `checks/`, and `domain/` differ.
/// Wiring functions that run domain and structural checkers.
/// Clause-body type checking (requires/ensures/invariant expressions).
/// Type conversion functions (AST TypeExpr, raw tokens -> Type).
pub
/// Domain-specific checkers (memory, concurrency, security, formatting, etc.).
/// Type environment construction.
pub
/// Generic type instantiation and arity checking.
pub
/// Ghost and lemma function effect checking.
pub
/// Expression type inference (`infer_expr`).
/// Type checking pipeline entry points.
/// Core type definitions (Type, TypeEnv, TypeError, TypedFile).
// ---- Re-exports: maintain the exact public API ----
// From types module
pub use ;
// From checkers module
pub use ;
// From domain module
pub use ;
// From checks module (public API for pipeline)
pub use collect_table_smt_obligations;
// Re-export checks/ helpers so domain/ can call them at crate scope.
pub use ;
// From convert module (pub(crate) items accessed within crate)
pub use parse_type_tokens;
// From inference module
pub use *;
// From generics module (only used in tests)
pub use ;
// From ghost_effects module
pub use ;
// From pipeline module
pub use ;
// Test-only re-exports: make checker types, domain types, and internal
// functions visible to the tests/ module via `use super::*;`.
pub use *;
pub use *;
pub use *;