Debugging Trait Errors as Logic Programs
summary
Rust trait resolution is literally a Prolog‑style logic program and compiler diagnostics collapse once constraints grow — real Bevy docs show 92 trait impls but only about six relevant entries for a given error. The project extracts proof trees from the trait solver and prototypes interactive visualizers: top‑down trees, directory stepping and inverted leaves‑first views that highlight the failing leaf (e.g. “timer does not implement system_param”). The demo surfaces unifications, branching points, and enormous inferred types but leaves scalability, heuristics and repair suggestions open.
AI-written summary · about
chapters (7)
- 0:00Trait errors in Rust
- 1:24Traits as logic programs
- 5:58Rust diagnostics limits
- 8:51Tracing Bevy trait errors
- 12:49Debugger interface demo
- 16:24Visualizing complex types
- 17:27Q&A
related talks
22mNegative Bounds for Avoiding Conflicts in Implementing Traits in Rust
36mRust's trait system is a proof engine, let's make it prove us an ABI!
49mThe Eternal Sunshine of the Spotless Programming Language
10mAutomatically Enforcing Rust Trait Properties
26mFriendly Ferris: Developing Kind Compiler Errors
31mDefense Against The Wrong Logic: Proactive Rust Coding
31mThe Anatomy of Error Messages in Rust
37mCompiler Errors in rustc: A UX Perspective
