@@ -137,6 +137,7 @@ impl std::error::Error for InvalidRustEdition {}
137
137
define_rust_editions ! {
138
138
Edition2018 ( 2018 ) => 31 ,
139
139
Edition2021 ( 2021 ) => 56 ,
140
+ Edition2024 ( 2024 ) => 85 ,
140
141
}
141
142
142
143
impl RustTarget {
@@ -160,9 +161,9 @@ impl Default for RustEdition {
160
161
/// This macro defines the [`RustTarget`] and [`RustFeatures`] types.
161
162
macro_rules! define_rust_targets {
162
163
(
163
- Nightly => { $( $nightly_feature: ident $( ( $nightly_edition: literal) ) * $( : #$issue: literal) ?) ,* $( , ) ?} $( , ) ?
164
+ Nightly => { $( $nightly_feature: ident $( ( $nightly_edition: literal) ) | * $( : #$issue: literal) ?) ,* $( , ) ?} $( , ) ?
164
165
$(
165
- $variant: ident( $minor: literal) => { $( $feature: ident $( ( $edition: literal) ) * $( : #$pull: literal) ?) ,* $( , ) ?} ,
166
+ $variant: ident( $minor: literal) => { $( $feature: ident $( ( $edition: literal) ) | * $( : #$pull: literal) ?) ,* $( , ) ?} ,
166
167
) *
167
168
$( , ) ?
168
169
) => {
@@ -252,7 +253,7 @@ define_rust_targets! {
252
253
} ,
253
254
Stable_1_77 ( 77 ) => {
254
255
offset_of: #106655 ,
255
- literal_cstr( 2021 ) : #117472 ,
256
+ literal_cstr( 2021 ) | ( 2024 ) : #117472 ,
256
257
} ,
257
258
Stable_1_73 ( 73 ) => { thiscall_abi: #42202 } ,
258
259
Stable_1_71 ( 71 ) => { c_unwind_abi: #106075 } ,
@@ -401,6 +402,26 @@ impl Default for RustFeatures {
401
402
mod test {
402
403
use super :: * ;
403
404
405
+ #[ test]
406
+ fn release_versions_for_editions ( ) {
407
+ assert_eq ! (
408
+ "1.33" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
409
+ RustEdition :: Edition2018
410
+ ) ;
411
+ assert_eq ! (
412
+ "1.56" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
413
+ RustEdition :: Edition2021
414
+ ) ;
415
+ assert_eq ! (
416
+ "1.85" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
417
+ RustEdition :: Edition2024
418
+ ) ;
419
+ assert_eq ! (
420
+ "nightly" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
421
+ RustEdition :: Edition2024
422
+ ) ;
423
+ }
424
+
404
425
#[ test]
405
426
fn target_features ( ) {
406
427
let features =
0 commit comments