]>
git.proxmox.com Git - rustc.git/blob - compiler/rustc_span/src/edition.rs
1 use crate::symbol
::{sym, Symbol}
;
5 use rustc_macros
::HashStable_Generic
;
7 /// The edition of the compiler (RFC 2052)
8 #[derive(Clone, Copy, Hash, PartialEq, PartialOrd, Debug, Encodable, Decodable, Eq)]
9 #[derive(HashStable_Generic)]
11 // editions must be kept in order, oldest to newest
16 // when adding new editions, be sure to update:
18 // - Update the `ALL_EDITIONS` const
19 // - Update the EDITION_NAME_LIST const
20 // - add a `rust_####()` function to the session
21 // - update the enum in Cargo's sources as well
24 // must be in order from oldest to newest
25 pub const ALL_EDITIONS
: &[Edition
] = &[Edition
::Edition2015
, Edition
::Edition2018
];
27 pub const EDITION_NAME_LIST
: &str = "2015|2018";
29 pub const DEFAULT_EDITION
: Edition
= Edition
::Edition2015
;
31 impl fmt
::Display
for Edition
{
32 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
34 Edition
::Edition2015
=> "2015",
35 Edition
::Edition2018
=> "2018",
42 pub fn lint_name(&self) -> &'
static str {
44 Edition
::Edition2015
=> "rust_2015_compatibility",
45 Edition
::Edition2018
=> "rust_2018_compatibility",
49 pub fn feature_name(&self) -> Symbol
{
51 Edition
::Edition2015
=> sym
::rust_2015_preview
,
52 Edition
::Edition2018
=> sym
::rust_2018_preview
,
56 pub fn is_stable(&self) -> bool
{
58 Edition
::Edition2015
=> true,
59 Edition
::Edition2018
=> true,
64 impl FromStr
for Edition
{
66 fn from_str(s
: &str) -> Result
<Self, ()> {
68 "2015" => Ok(Edition
::Edition2015
),
69 "2018" => Ok(Edition
::Edition2018
),