Voltar
Rust 1.100.0 estabiliza o never type, APIs de custom allocator e DropGuard

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

  1. Rust 1.96.0 estabiliza os tipos core::range e traz melhorias no Cargo.

  2. CEVIU noticia a chegada do Rust 1.100.0 com never type estável e allocator_api.

  3. 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

Avalie este artigo:
Categoria
CEVIU Web Dev
Publicado
13 de novembro de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser