@@ -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
) => {
@@ -253,7 +254,7 @@ define_rust_targets! {
253
254
} ,
254
255
Stable_1_77 ( 77 ) => {
255
256
offset_of: #106655 ,
256
- literal_cstr( 2021 ) : #117472 ,
257
+ literal_cstr( 2021 ) | ( 2024 ) : #117472 ,
257
258
} ,
258
259
Stable_1_73 ( 73 ) => { thiscall_abi: #42202 } ,
259
260
Stable_1_71 ( 71 ) => { c_unwind_abi: #106075 } ,
@@ -404,6 +405,26 @@ impl Default for RustFeatures {
404
405
mod test {
405
406
use super :: * ;
406
407
408
+ #[ test]
409
+ fn release_versions_for_editions ( ) {
410
+ assert_eq ! (
411
+ "1.33" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
412
+ RustEdition :: Edition2018
413
+ ) ;
414
+ assert_eq ! (
415
+ "1.56" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
416
+ RustEdition :: Edition2021
417
+ ) ;
418
+ assert_eq ! (
419
+ "1.85" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
420
+ RustEdition :: Edition2024
421
+ ) ;
422
+ assert_eq ! (
423
+ "nightly" . parse:: <RustTarget >( ) . unwrap( ) . latest_edition( ) ,
424
+ RustEdition :: Edition2024
425
+ ) ;
426
+ }
427
+
407
428
#[ test]
408
429
fn target_features ( ) {
409
430
let features =
0 commit comments