-The goal of the a-mir-formality project is to (a) share and capture knowledge of how Rust's static type checking works, including the type checker, trait checker, borrow checker, and in-progress areas like const generics; (b) enable protoyping and exploration of new ideas in a lighterweight environment that still exposes the "inherent complexity" of the feature while avoiding the "accidental complexity" of building a full-featured implementation int he compiler; (c) be a middle ground that can help us validate and prove rust's type safety. Achieving that last bullet requires integrating with MiniRust, which models the behavior of a Rust program when executed ("operational semantics") and provides rules for what constitutes undefined behavior. If we align these two models, we should be able to test with fuzzing that, e.g., no fully safe program that passes the type check can, when executed with MiniRust, cause undefined behavior.
0 commit comments