Rust estabiliza el tipo 'never' (!) tras dos años de trabajo
El compilador de Rust ya permite usar el tipo '!' en código estable, tras un proceso largo que incluyó un pequeño cambio con efectos sobre ediciones anteriores.
Después de más de dos años de trabajo, el tipo 'never' de Rust, representado con el signo de exclamación, ha dejado de ser inestable. El contribuidor del compilador conocido como 'waffle' logró estabilizarlo el 24 de agosto. El retraso no fue casual: la estabilización incluía una pequeña ruptura de compatibilidad con ediciones anteriores de Rust, y los responsables del mantenimiento del compilador querían evaluar bien su impacto sobre el código existente antes de dar el paso.
El tipo '!' ya se usaba internamente en el compilador para representar funciones que nunca retornan o situaciones donde no puede existir un valor, pero su uso en código de usuario requería activar una feature inestable. A partir de ahora, los desarrolladores pueden usarlo sin necesidad de versiones nocturnas ni de atributos especiales. Eso simplifica ciertos patrones, como APIs que esperan un tipo que nunca se llega a construir, o funciones que terminan en un bucle infinito o que lanzan una salida del proceso.
La parte delicada era que la estabilización implicaba un cambio en la forma en que se resuelven algunas coercionaciones de tipos en las ediciones antiguas de Rust. El equipo del compilador prefirió esperar a confirmar que el impacto era mínimo, y así parece haberlo sido. La decisión se materializó en el pull request de GitHub y los detalles oficiales quedaron recogidos en la documentación del tipo never.
Para quien mantiene código Rust en producción, esto quita un obstáculo: ya no hace falta recurrir a trucos ni a crates externos para expresar 'esta función nunca devuelve'. Es un paso más hacia que el lenguaje permita expresar intenciones de forma directa y segura, algo que en Rust siempre se ha valorado.


