]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_span/src/edition.rs
Rollup merge of #82428 - ehuss:update-mdbook, r=Mark-Simulacrum
[rust.git] / compiler / rustc_span / src / edition.rs
index efbb0a23a6f012a679f80ed764775d90c1bf9b7e..a9200dd7dfd6e196e417d6def64c5e39d6ea20af 100644 (file)
@@ -20,20 +20,26 @@ pub enum Edition {
     Edition2015,
     /// The 2018 edition
     Edition2018,
+    /// The 2021 ediiton
+    Edition2021,
 }
 
 // Must be in order from oldest to newest.
-pub const ALL_EDITIONS: &[Edition] = &[Edition::Edition2015, Edition::Edition2018];
+pub const ALL_EDITIONS: &[Edition] =
+    &[Edition::Edition2015, Edition::Edition2018, Edition::Edition2021];
 
-pub const EDITION_NAME_LIST: &str = "2015|2018";
+pub const EDITION_NAME_LIST: &str = "2015|2018|2021";
 
 pub const DEFAULT_EDITION: Edition = Edition::Edition2015;
 
+pub const LATEST_STABLE_EDITION: Edition = Edition::Edition2018;
+
 impl fmt::Display for Edition {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
         let s = match *self {
             Edition::Edition2015 => "2015",
             Edition::Edition2018 => "2018",
+            Edition::Edition2021 => "2021",
         };
         write!(f, "{}", s)
     }
@@ -44,6 +50,7 @@ pub fn lint_name(&self) -> &'static str {
         match *self {
             Edition::Edition2015 => "rust_2015_compatibility",
             Edition::Edition2018 => "rust_2018_compatibility",
+            Edition::Edition2021 => "rust_2021_compatibility",
         }
     }
 
@@ -51,6 +58,7 @@ pub fn feature_name(&self) -> Symbol {
         match *self {
             Edition::Edition2015 => sym::rust_2015_preview,
             Edition::Edition2018 => sym::rust_2018_preview,
+            Edition::Edition2021 => sym::rust_2021_preview,
         }
     }
 
@@ -58,6 +66,7 @@ pub fn is_stable(&self) -> bool {
         match *self {
             Edition::Edition2015 => true,
             Edition::Edition2018 => true,
+            Edition::Edition2021 => false,
         }
     }
 }
@@ -68,6 +77,7 @@ fn from_str(s: &str) -> Result<Self, ()> {
         match s {
             "2015" => Ok(Edition::Edition2015),
             "2018" => Ok(Edition::Edition2018),
+            "2021" => Ok(Edition::Edition2021),
             _ => Err(()),
         }
     }