Rust 1.46.0: track_caller y mejoras const fn

El equipo de Rust se complace en anunciar la nueva versi贸n de Rust 1.46.0. Rust es un lenguaje de programaci贸n que permite a cualquiera crear software confiable y eficiente.



Si tiene una versi贸n anterior de Rust instalada a trav茅s de rustup, obtener Rust 1.46.0 es tan f谩cil como:



rustup update stable


Si a煤n no lo tiene rustup, puede instalarlo desde la p谩gina correspondiente en nuestro sitio web y ver las notas detalladas de la versi贸n 1.46.0 en GitHub.



Qu茅 se incluye en la versi贸n estable 1.46.0



Esta versi贸n es bastante peque帽a, con mejoras en la const fnestabilizaci贸n de dos nuevas API en la biblioteca est谩ndar y una opci贸n para los autores de la biblioteca. Consulte las notas de la versi贸n detalladas para conocer otros cambios no cubiertos en este anuncio.



#[track_caller]



En marzo, cuando se lanz贸 Rust 1.42, , unwrapcaracter铆sticas como esta estaban causando p谩nico . Mencionamos entonces que la implementaci贸n a煤n no es estable. En Rust 1.46, lo estabilizamos.



#[track_caller] RFC 2091 2017! , unwrap, , , . , unwrap:



pub fn unwrap(self) -> T {
    match self {
        Some(val) => val,
        None => panic!(" `Option::unwrap()`   `None`"),
    }
}


:



#[track_caller]
pub fn unwrap(self) -> T {
    match self {
        Some(val) => val,
        None => panic!(" `Option::unwrap()`   `None`"),
    }
}


!



, std::panic::Location, .



const fn



const fn , :



  • if, if let match
  • while, while let loop
  • && ||


:



const fn foo() {
  let x = [1, 2, 3, 4, 5];

  //    
  let y: &[_] = &x;
}


, , const fn, ! , , const-sha1 SHA1 . 40- Microsoft WinRT Rust.





const fn, std::mem::forget const fn. API:





, .





, Cargo Clippy .



1.46.0



, Rust 1.46.0. . !





Rust - . , .

opencollective: https://opencollective.com/rust-lang-ru.



funkill, Hirrolot andreevlex.




All Articles