about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-04-23 01:44:19 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-05-17 23:13:08 +0300
commitee5b1e15aa689b801bc7b2f7ee6508549a043f56 (patch)
treea2a6b686a62789e96b41fdc9c611c6153b320897 /src/libsyntax
parent90463a6bdcd18c60e18a1cc810fc6453b96f7d54 (diff)
downloadrust-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.rs82
-rw-r--r--src/libsyntax/lib.rs3
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;