diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-04-23 01:44:19 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-05-17 23:13:08 +0300 |
| commit | ee5b1e15aa689b801bc7b2f7ee6508549a043f56 (patch) | |
| tree | a2a6b686a62789e96b41fdc9c611c6153b320897 /src/libsyntax | |
| parent | 90463a6bdcd18c60e18a1cc810fc6453b96f7d54 (diff) | |
| download | rust-ee5b1e15aa689b801bc7b2f7ee6508549a043f56.tar.gz rust-ee5b1e15aa689b801bc7b2f7ee6508549a043f56.zip | |
Move definition of `Edition` from libsyntax to libsyntax_pos
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/edition.rs | 82 | ||||
| -rw-r--r-- | src/libsyntax/lib.rs | 3 |
2 files changed, 1 insertions, 84 deletions
diff --git a/src/libsyntax/edition.rs b/src/libsyntax/edition.rs deleted file mode 100644 index c98b54581f3..00000000000 --- a/src/libsyntax/edition.rs +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -use std::fmt; -use std::str::FromStr; - -/// The edition of the compiler (RFC 2052) -#[derive(Clone, Copy, Hash, PartialOrd, Ord, Eq, PartialEq, Debug)] -#[non_exhaustive] -pub enum Edition { - // editions must be kept in order, newest to oldest - - /// The 2015 edition - Edition2015, - /// The 2018 edition - Edition2018, - - // when adding new editions, be sure to update: - // - // - Update the `ALL_EDITIONS` const - // - Update the EDITION_NAME_LIST const - // - add a `rust_####()` function to the session - // - update the enum in Cargo's sources as well -} - -// must be in order from oldest to newest -pub const ALL_EDITIONS: &[Edition] = &[Edition::Edition2015, Edition::Edition2018]; - -pub const EDITION_NAME_LIST: &'static str = "2015|2018"; - -pub const DEFAULT_EDITION: Edition = Edition::Edition2015; - -impl fmt::Display for Edition { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let s = match *self { - Edition::Edition2015 => "2015", - Edition::Edition2018 => "2018", - }; - write!(f, "{}", s) - } -} - -impl Edition { - pub fn lint_name(&self) -> &'static str { - match *self { - Edition::Edition2015 => "rust_2015_compatibility", - Edition::Edition2018 => "rust_2018_compatibility", - } - } - - pub fn feature_name(&self) -> &'static str { - match *self { - Edition::Edition2015 => "rust_2015_preview", - Edition::Edition2018 => "rust_2018_preview", - } - } - - pub fn is_stable(&self) -> bool { - match *self { - Edition::Edition2015 => true, - Edition::Edition2018 => false, - } - } -} - -impl FromStr for Edition { - type Err = (); - fn from_str(s: &str) -> Result<Self, ()> { - match s { - "2015" => Ok(Edition::Edition2015), - "2018" => Ok(Edition::Edition2018), - _ => Err(()) - } - } -} diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index 90af3ba51ec..e9817034569 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -22,7 +22,6 @@ #![feature(unicode_internals)] #![feature(rustc_diagnostic_macros)] #![feature(slice_sort_by_cached_key)] -#![feature(non_exhaustive)] #![feature(const_atomic_usize_new)] #![feature(rustc_attrs)] #![feature(str_escape)] @@ -142,7 +141,6 @@ pub mod codemap; #[macro_use] pub mod config; pub mod entry; -pub mod edition; pub mod feature_gate; pub mod fold; pub mod parse; @@ -150,6 +148,7 @@ pub mod ptr; pub mod show_span; pub mod std_inject; pub mod str; +pub use syntax_pos::edition; pub use syntax_pos::symbol; pub mod test; pub mod tokenstream; |
