Skip to content
Permalink
Browse files

Move modules outside the proc macro

  • Loading branch information...
Zoxc committed Apr 9, 2019
1 parent afeda72 commit baebf79057fba32c27c3353aacbd389692a54a0c
Showing with 44 additions and 26 deletions.
  1. +16 −26 src/librustc_macros/src/symbols.rs
  2. +28 −0 src/libsyntax_pos/symbol.rs
@@ -129,37 +129,27 @@ pub fn symbols(input: TokenStream) -> TokenStream {
}

TokenStream::from(quote! {
#[allow(non_upper_case_globals)]
pub mod keywords {
use super::{Symbol, Ident};
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct Keyword {
ident: Ident,
}
impl Keyword {
#[inline] pub fn ident(self) -> Ident { self.ident }
#[inline] pub fn name(self) -> Symbol { self.ident.name }
}

#keyword_stream

impl std::str::FromStr for Keyword {
type Err = ();

fn from_str(s: &str) -> Result<Self, ()> {
match s {
#from_str_stream
_ => Err(()),
macro_rules! keywords {
() => {
#keyword_stream

impl std::str::FromStr for Keyword {
type Err = ();

fn from_str(s: &str) -> Result<Self, ()> {
match s {
#from_str_stream
_ => Err(()),
}
}
}
}
}

#[allow(non_upper_case_globals)]
pub mod symbols {
use super::Symbol;

#symbols_stream
macro_rules! symbols {
() => {
#symbols_stream
}
}

impl Interner {
@@ -406,6 +406,34 @@ impl Interner {
}
}

pub mod keywords {
use super::{Symbol, Ident};

#[derive(Clone, Copy, PartialEq, Eq)]
pub struct Keyword {
ident: Ident,
}

impl Keyword {
#[inline]
pub fn ident(self) -> Ident {
self.ident
}

#[inline]
pub fn name(self) -> Symbol {
self.ident.name
}
}

keywords!();
}

pub mod symbols {
use super::Symbol;
symbols!();
}

impl Symbol {
fn is_used_keyword_2018(self) -> bool {
self == keywords::Dyn.name()

0 comments on commit baebf79

Please sign in to comment.
You can’t perform that action at this time.