Borrow checker di Rust
Il componente del compilatore Rust che fa rispettare le regole di ownership e lifetime: un riferimento mutabile OPPURE molti immutabili, e ogni riferimento strettamente entro la vita dell'oggetto. Garantisce la sicurezza della memoria senza garbage collector.
Gli NLL (Non-Lexical Lifetimes, 2018) hanno reso le regole più permissive: i riferimenti terminano quando non servono più, non alla fine dello scope. Polonius (in sviluppo) promette ancora più flessibilità. È famoso per frustrare i principianti («combattere il borrow checker»). Gli sviluppatori Rust esperti riformulano il problema e il checker diventa un guanto che aiuta a ragionare. Ha ispirato: l'accesso esclusivo di Swift, l'ownership di Mojo, Carbon. Nessun overhead a runtime: tutto avviene in compilazione.