Borrow checker
El subsistema del compilador de Rust que valida las reglas de ownership y lifetimes. Garantiza seguridad de memoria y de hilos sin recolector de basura. «Pelearse con el borrow checker» es una etapa clásica del principiante.
Reglas: una referencia mutable O varias referencias inmutables, nunca ambas. Las referencias no pueden sobrevivir a los datos a los que apuntan. NLL (Non-Lexical Lifetimes, 2018) hizo más listo al verificador — las referencias dejan de aplicar en su último uso, no al final del bloque. Polonius (en desarrollo) debería aceptar aún más programas correctos. Frustración clásica: código que «obviamente» es seguro acaba rechazado. Con la experiencia empiezas a diseñar las estructuras de datos para que le gusten al verificador (más Vec, menos listas enlazadas).