Rust 1.100 estabiliza never type, APIs de custom allocator e DropGuard
Aprofundamento CEVIU
Aprofundamento
O Rust 1.100.0 estabiliza o never type (!) depois de 10 anos e 5 tentativas frustradas. É o tipo desabitado canônico, o das computações que divergem, como return, break e std::process::exit. Como não existe valor de !, vale a coerção de ! para qualquer outro tipo, o que permite não retornar valor em um ramo de match ou if. A mudança agora é poder nomear o tipo em qualquer lugar, e Infallible virou alias de !.
Houve uma quebra de compatibilidade. O "never type fallback" passou de () para ! nas edições 2015, 2018 e 2021, como já ocorria na 2024. Segundo a fonte, o efeito deve ser quase imperceptível, mas pode aparecer ao ignorar o resultado de uma função que retorna um parâmetro genérico, e o compilador pode marcar mais código como inalcançável. Se uma dependência falhar por isso, atualize-a. Também chegam as APIs centrais de allocator_api com a trait Allocator, por ora usáveis com Vec e Box, e o core::mem::DropGuard, que roda um closure ao ser descartado e tem dismiss para devolver a variável sem executar o destrutor. Há ainda std::mem::conjure_zst, função unsafe para criar tipos de tamanho zero.
No Cargo, há aviso de dependências não usadas, dentro do novo sistema de lints controlado por [lints.cargo] no Cargo.toml. Ele só aparece ao compilar todos os alvos que podem usar a entrada, e não cobre dev-dependencies. O layout do build-dir agora aplica o hash de configuração ao diretório pai, o que pode quebrar processos de build com workarounds. Por fim, o min-publish-age (cooldown de dependências) é configurado em .cargo/config.toml. O cargo install o ignora, e versões sem o campo pubtime no índice nunca são retidas.
O que mudou
Em 12 de novembro de 2026, o CEVIU noticiou "Rust 1.100.0 chega com never type estável e allocator_api", com o anúncio da versão. Esta matéria detalha o restante do pacote: DropGuard, os avisos do Cargo e os cooldowns. Em 29 de maio de 2026, no "Anunciado o Rust 1.96.0 com Tipos core::range Estabilizados e Melhorias no Cargo", o Cargo já havia sido destaque, e a 1.100 segue essa linha.
Por que isso importa
Para quem mantém projetos em edições anteriores à 2024, vale rodar o build e os testes na 1.100 e olhar warnings de código inalcançável. Para quem cuida de supply chain, o cooldown é uma camada barata, mas a própria equipe diz que não substitui a revisão de atualizações. Quem usa git worktrees com build-dir compartilhado deve ver menos rebuilds estranhos.
Linha do tempo
Rust 1.96.0 estabiliza os tipos core::range e traz melhorias no Cargo.
CEVIU noticia a chegada do Rust 1.100.0 com never type estável e allocator_api.
Rust 1.100 estabiliza never type, APIs de custom allocator e DropGuard, com novidades no Cargo.
Perguntas frequentes
O que o never type estável muda no meu código?
Você pode nomear ! em qualquer lugar, não só no retorno de funções. O Infallible virou alias de !. Em editions anteriores à 2024, o fallback passou de () para !, o que pode afetar casos raros.
Como ativo o cooldown de dependências no Cargo?
Você configura o min-publish-age no .cargo/config.toml. O Cargo passa a pular versões publicadas mais recentemente que o prazo e avisa o que reteve. Dá para sobrescrever a checagem em uma atualização específica.
O aviso de dependências não usadas pega tudo?
Não. Ele só aparece ao compilar todos os alvos que podem usar a dependência, então cargo check --bin foo não o mostra. Também não há aviso para dev-dependencies.
Posso usar allocators customizados com qualquer coleção?
Ainda não. A trait Allocator está estável, mas o uso com coleções se limita a Vec e Box. A equipe diz que mais tipos devem ser estabilizados em breve.
Fontes
- blog.rust-lang.orgfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 13 de novembro de 2026
- Editoria
- CEVIU Web Dev

