Saltar para o conteúdo
Sexta-feira, 13 de novembro de 2026
Avisos

Todas as notícias de Portugal num só sítio. Sempre com a fonte, verificada com base em factos. Sem assinaturas, totalmente gratuito.

Última hora
  1. Guarda fecha escolas e serviços municipais na quarta-feira devido ao mau tempo
  2. Universidade da Beira Interior fecha portas a 11 de novembro devido ao mau tempo
  3. Santarém ativa aviso preventivo por cheias do Tejo com caudal acima do limiar
  4. Depressão Charles leva a estado de alerta e aviso vermelho em vários distritos

Software

O que muda com o Rust 1.100.0 — perguntas e respostas

A versão 1.100.0 do Rust estabiliza o tipo never, traz o DropGuard e a função conjure_zst, e faz o Cargo avisar sobre dependências não utilizadas.

Explicador. Perguntas e respostas sobre o tema da notícia «Rust 1.100.0 estabiliza o tipo never ao fim de dez anos», escritas com IA só com factos da fonte abaixo.

· Explicador · Texto feito com IA · verificado automaticamente

Publicado

Fotografia tirada na Serra da Estrela em 9 de Maio de 2018. Imagem ilustrativa.
Fotografia tirada na Serra da Estrela em 9 de Maio de 2018. Imagem ilustrativa. Foto: MIMICA2018 / CC BY-SA 4.0 via Wikimedia Commons

O que é o tipo never? Escreve-se ! no código e representa cálculos divergentes, que nunca chegam a produzir um valor, pelo que o código seguinte nunca é executado. Expressões que interrompem o fluxo, como return, break e std::process::exit, têm este tipo. A estabilização chegou ao fim de 10 anos e de cinco tentativas falhadas.

O que muda na prática com a estabilização? O tipo never passa a poder ser escrito em qualquer lugar, por exemplo em Result<T, !>, algo que antes não era permitido. Já podia ser usado como retorno de funções (-> !). Além disso, Infallible passou a ser um alias do never, o que torna as APIs antigas compatíveis com !.

Há alguma alteração que possa afetar código existente? Sim. Nas edições 2015, 2018 e 2021, o valor por omissão do never type passa de () para !, como já acontecia na edição 2024. Em regra não se nota, mas pode afetar casos raros, como ignorar o resultado de uma função que devolve um parâmetro genérico. A equipa avisou com antecedência e aconselha atualizar dependências afetadas.

O que é o DropGuard? É um tipo novo, core::mem::DropGuard, que executa um fecho quando é largado, em qualquer caminho de saída. Recebe uma variável e um fecho, e permite continuar a usar a variável através de Deref e DerefMut. O método dismiss devolve a variável sem executar o fecho, útil para operações tudo-ou-nada com reversão em caso de erro.

Para que serve a função conjure_zst? A função std::mem::conjure_zst é a forma indicada de criar, de modo unsafe, um valor de um tipo de tamanho zero, quando isso é seguro. Substitui truques como transmutar () ou usar MaybeUninit. É unsafe porque algumas APIs dependem de não se poder construir esses tipos, como o Python<'py> do PyO3.

Que novidade traz o Cargo? Passa a avisar sobre dependências não utilizadas, com o aviso cargo::unused_dependencies, ativo por omissão como warn. Só aparece se forem compilados todos os alvos que possam usar cada dependência; cargo check --bin foo, por exemplo, não mostra avisos sobre [dependencies]. Para dev-dependencies não é mostrado nenhum aviso.

Fonte: Rust Project — Announcing Rust 1.100.0

Fontes

  • Rust Project fonte oficial · recolhido a 13 de novembro de 2026, 01:34

Texto próprio escrito a partir da(s) fonte(s) acima. Não reproduzimos textos de jornais nem de agências. Encontrou um erro? Peça uma correção.

Mais em Software

Ver tudo