Skip to content
This repository was archived by the owner on Dec 27, 2022. It is now read-only.

Commit 4614fb3

Browse files
committed
Replace proc-macro2 dependency
1 parent 1a19138 commit 4614fb3

File tree

5 files changed

+44
-56
lines changed

5 files changed

+44
-56
lines changed

Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ readme = "README.md"
1212
[lib]
1313
proc-macro = true
1414

15-
[dependencies]
16-
proc-macro2 = "1.0"
17-
1815
[dev-dependencies]
1916
demo-hack = { version = "0.0.5", path = "demo-hack" }
2017
demo-hack-impl = { version = "0.0.5", path = "demo-hack-impl" }

src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use proc_macro2::{Delimiter, Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree};
1+
use proc_macro::{Delimiter, Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree};
22
use std::iter::FromIterator;
33

44
pub struct Error {

src/lib.rs

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ mod parse;
136136

137137
use crate::error::{compile_error, Error};
138138
use crate::parse::*;
139-
use proc_macro2::{token_stream, Ident, Punct, Spacing, Span, TokenStream, TokenTree};
139+
use proc_macro::{token_stream, Ident, Punct, Spacing, Span, TokenStream, TokenTree};
140140
use std::fmt::Write;
141141
use std::iter::Peekable;
142142

@@ -169,14 +169,10 @@ struct Macro {
169169
}
170170

171171
#[proc_macro_attribute]
172-
pub fn proc_macro_hack(
173-
args: proc_macro::TokenStream,
174-
input: proc_macro::TokenStream,
175-
) -> proc_macro::TokenStream {
176-
let ref mut args = TokenStream::from(args).into_iter().peekable();
177-
let ref mut input = TokenStream::from(input).into_iter().peekable();
178-
let output = expand_proc_macro_hack(args, input).unwrap_or_else(compile_error);
179-
proc_macro::TokenStream::from(output)
172+
pub fn proc_macro_hack(args: TokenStream, input: TokenStream) -> TokenStream {
173+
let ref mut args = args.into_iter().peekable();
174+
let ref mut input = input.into_iter().peekable();
175+
expand_proc_macro_hack(args, input).unwrap_or_else(compile_error)
180176
}
181177

182178
fn expand_proc_macro_hack(args: Iter, input: Iter) -> Result<TokenStream, Error> {
@@ -194,10 +190,9 @@ fn expand_proc_macro_hack(args: Iter, input: Iter) -> Result<TokenStream, Error>
194190

195191
#[doc(hidden)]
196192
#[proc_macro_derive(ProcMacroHack)]
197-
pub fn enum_hack(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
198-
let ref mut input = TokenStream::from(input).into_iter().peekable();
199-
let output = parse_enum_hack(input).unwrap_or_else(compile_error);
200-
proc_macro::TokenStream::from(output)
193+
pub fn enum_hack(input: TokenStream) -> TokenStream {
194+
let ref mut input = input.into_iter().peekable();
195+
parse_enum_hack(input).unwrap_or_else(compile_error)
201196
}
202197

203198
struct FakeCallSite {
@@ -207,14 +202,10 @@ struct FakeCallSite {
207202

208203
#[doc(hidden)]
209204
#[proc_macro_attribute]
210-
pub fn fake_call_site(
211-
args: proc_macro::TokenStream,
212-
input: proc_macro::TokenStream,
213-
) -> proc_macro::TokenStream {
214-
let ref mut args = TokenStream::from(args).into_iter().peekable();
215-
let ref mut input = TokenStream::from(input).into_iter().peekable();
216-
let output = expand_fake_call_site(args, input).unwrap_or_else(compile_error);
217-
proc_macro::TokenStream::from(output)
205+
pub fn fake_call_site(args: TokenStream, input: TokenStream) -> TokenStream {
206+
let ref mut args = args.into_iter().peekable();
207+
let ref mut input = input.into_iter().peekable();
208+
expand_fake_call_site(args, input).unwrap_or_else(compile_error)
218209
}
219210

220211
fn expand_fake_call_site(args: Iter, input: Iter) -> Result<TokenStream, Error> {

src/parse.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
use crate::{Define, Error, Export, ExportArgs, FakeCallSite, Input, Iter, Macro, Visibility};
2-
use proc_macro2::Delimiter::{Brace, Bracket, Parenthesis};
3-
use proc_macro2::{token_stream, Delimiter, Ident, Span, TokenStream, TokenTree};
2+
use proc_macro::Delimiter::{Brace, Bracket, Parenthesis};
3+
use proc_macro::{token_stream, Delimiter, Ident, Span, TokenStream, TokenTree};
44
use std::iter::Peekable;
55

66
pub(crate) fn parse_input(tokens: Iter) -> Result<Input, Error> {
77
let attrs = parse_attributes(tokens)?;
88
let vis = parse_visibility(tokens)?;
99
let kw = parse_ident(tokens)?;
10-
if kw == "use" {
10+
if kw.to_string() == "use" {
1111
parse_export(attrs, vis, tokens).map(Input::Export)
12-
} else if kw == "fn" {
12+
} else if kw.to_string() == "fn" {
1313
parse_define(attrs, vis, kw.span(), tokens).map(Input::Define)
1414
} else {
1515
Err(Error::new(
@@ -86,7 +86,7 @@ fn parse_define(
8686
fn parse_macro(tokens: Iter) -> Result<Macro, Error> {
8787
let name = parse_ident(tokens)?;
8888
let export_as = match tokens.peek() {
89-
Some(TokenTree::Ident(ident)) if ident == "as" => {
89+
Some(TokenTree::Ident(ident)) if ident.to_string() == "as" => {
9090
tokens.next().unwrap();
9191
parse_ident(tokens)?
9292
}
@@ -107,7 +107,7 @@ fn parse_ident(tokens: Iter) -> Result<Ident, Error> {
107107

108108
fn parse_keyword(tokens: Iter, kw: &'static str) -> Result<(), Error> {
109109
match &tokens.next() {
110-
Some(TokenTree::Ident(ident)) if ident == kw => Ok(()),
110+
Some(TokenTree::Ident(ident)) if ident.to_string() == kw => Ok(()),
111111
tt => Err(Error::new(
112112
tt.as_ref().map_or_else(Span::call_site, TokenTree::span),
113113
format!("expected `{}`", kw),
@@ -140,7 +140,7 @@ fn parse_group(
140140

141141
fn parse_visibility(tokens: Iter) -> Result<Visibility, Error> {
142142
if let Some(TokenTree::Ident(ident)) = tokens.peek() {
143-
if ident == "pub" {
143+
if ident.to_string() == "pub" {
144144
return Ok(Some(tokens.next().unwrap().span()));
145145
}
146146
}
@@ -174,17 +174,17 @@ pub(crate) fn parse_export_args(tokens: Iter) -> Result<ExportArgs, Error> {
174174

175175
while let Some(tt) = tokens.next() {
176176
match &tt {
177-
TokenTree::Ident(ident) if ident == "support_nested" => {
177+
TokenTree::Ident(ident) if ident.to_string() == "support_nested" => {
178178
args.support_nested = true;
179179
}
180-
TokenTree::Ident(ident) if ident == "internal_macro_calls" => {
180+
TokenTree::Ident(ident) if ident.to_string() == "internal_macro_calls" => {
181181
parse_punct(tokens, '=')?;
182182
let calls = parse_int(tokens).map_err(|span| {
183183
Error::new(span, "expected integer value for internal_macro_calls")
184184
})?;
185185
args.internal_macro_calls = calls;
186186
}
187-
TokenTree::Ident(ident) if ident == "fake_call_site" => {
187+
TokenTree::Ident(ident) if ident.to_string() == "fake_call_site" => {
188188
args.fake_call_site = true;
189189
}
190190
_ => {

src/quote.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use proc_macro2::{Ident, TokenStream, TokenTree};
1+
use proc_macro::{Ident, TokenStream, TokenTree};
22
use std::iter;
33

44
macro_rules! quote {
55
() => {
6-
::proc_macro2::TokenStream::new()
6+
::proc_macro::TokenStream::new()
77
};
88
($($tt:tt)*) => {{
9-
let mut tokens = ::proc_macro2::TokenStream::new();
9+
let mut tokens = ::proc_macro::TokenStream::new();
1010
quote_each_token!(tokens $($tt)*);
1111
tokens
1212
}};
@@ -18,26 +18,26 @@ macro_rules! quote_each_token {
1818
quote_each_token!($tokens $($rest)*);
1919
};
2020
($tokens:ident $ident:ident $($rest:tt)*) => {
21-
<::proc_macro2::TokenStream as ::std::iter::Extend<_>>::extend(
21+
<::proc_macro::TokenStream as ::std::iter::Extend<_>>::extend(
2222
&mut $tokens,
2323
::std::iter::once(
24-
::proc_macro2::TokenTree::Ident(
25-
::proc_macro2::Ident::new(
24+
::proc_macro::TokenTree::Ident(
25+
::proc_macro::Ident::new(
2626
stringify!($ident),
27-
::proc_macro2::Span::call_site(),
27+
::proc_macro::Span::call_site(),
2828
),
2929
),
3030
),
3131
);
3232
quote_each_token!($tokens $($rest)*);
3333
};
3434
($tokens:ident ( $($inner:tt)* ) $($rest:tt)*) => {
35-
<::proc_macro2::TokenStream as ::std::iter::Extend<_>>::extend(
35+
<::proc_macro::TokenStream as ::std::iter::Extend<_>>::extend(
3636
&mut $tokens,
3737
::std::iter::once(
38-
::proc_macro2::TokenTree::Group(
39-
::proc_macro2::Group::new(
40-
::proc_macro2::Delimiter::Parenthesis,
38+
::proc_macro::TokenTree::Group(
39+
::proc_macro::Group::new(
40+
::proc_macro::Delimiter::Parenthesis,
4141
quote!($($inner)*),
4242
),
4343
),
@@ -46,12 +46,12 @@ macro_rules! quote_each_token {
4646
quote_each_token!($tokens $($rest)*);
4747
};
4848
($tokens:ident [ $($inner:tt)* ] $($rest:tt)*) => {
49-
<::proc_macro2::TokenStream as ::std::iter::Extend<_>>::extend(
49+
<::proc_macro::TokenStream as ::std::iter::Extend<_>>::extend(
5050
&mut $tokens,
5151
::std::iter::once(
52-
::proc_macro2::TokenTree::Group(
53-
::proc_macro2::Group::new(
54-
::proc_macro2::Delimiter::Bracket,
52+
::proc_macro::TokenTree::Group(
53+
::proc_macro::Group::new(
54+
::proc_macro::Delimiter::Bracket,
5555
quote!($($inner)*),
5656
),
5757
),
@@ -60,12 +60,12 @@ macro_rules! quote_each_token {
6060
quote_each_token!($tokens $($rest)*);
6161
};
6262
($tokens:ident { $($inner:tt)* } $($rest:tt)*) => {
63-
<::proc_macro2::TokenStream as ::std::iter::Extend<_>>::extend(
63+
<::proc_macro::TokenStream as ::std::iter::Extend<_>>::extend(
6464
&mut $tokens,
6565
::std::iter::once(
66-
::proc_macro2::TokenTree::Group(
67-
::proc_macro2::Group::new(
68-
::proc_macro2::Delimiter::Brace,
66+
::proc_macro::TokenTree::Group(
67+
::proc_macro::Group::new(
68+
::proc_macro::Delimiter::Brace,
6969
quote!($($inner)*),
7070
),
7171
),
@@ -74,9 +74,9 @@ macro_rules! quote_each_token {
7474
quote_each_token!($tokens $($rest)*);
7575
};
7676
($tokens:ident $punct:tt $($rest:tt)*) => {
77-
<::proc_macro2::TokenStream as ::std::iter::Extend<_>>::extend(
77+
<::proc_macro::TokenStream as ::std::iter::Extend<_>>::extend(
7878
&mut $tokens,
79-
stringify!($punct).parse::<::proc_macro2::TokenStream>(),
79+
stringify!($punct).parse::<::proc_macro::TokenStream>(),
8080
);
8181
quote_each_token!($tokens $($rest)*);
8282
};

0 commit comments

Comments
 (0)