Bounded generics over constants in Rust (2019)
Rust is a language aiming to provide a way to write robust and performant code without using garbage collection or manual memory managment. Yet it lacks of a mechanism to abstract constants, forcing users to repeat code in cases where con- stants are involved. One of the challenges of developing this mechanism, is that it must be compatible with the language's core principles of performance, reliability and productivity, putting it in contrast with well established languages such as C++, where the mechanism for constant abstraction is another source of unsafety. In order to provide such a mechanism, we propose and develop a symbolic execution engine for the Rust compiler. We explore the integration of the engine in the language's trait solving and type inference mechanisms.