Oct. 10th, Thursday - 13:30 - 14:00
Proving macro expansion with expandable
Macros are a very powerful Rust feature. They allow developers to quickly and easily build domain-specific languages, with no runtime cost.
However, the Rust compiler does surprisingly few checks on macros. For instance, it happily accepts a macro whose expansion is not syntactically valid, which makes them hard to debug.
In this talk, we will see how expandable
allows to check at compile time that a macro always expands to valid code and give a brief explanation under the hood.
Finally, we’ll see a few techniques expandable
uses to generate excellent error messages.