Skip to content

Commit

Permalink
Merge pull request #62 from staktrace/standalone
Browse files Browse the repository at this point in the history
Add proc-macro feature to control the runtime dependency on rustc toolchain libs
  • Loading branch information
dtolnay authored Mar 31, 2018
2 parents 5a1b906 + 7ef4822 commit 9efc2e5
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 1 deletion.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ rust:

script:
- cargo test
- cargo test --no-default-features
8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,10 @@ keywords = ["syn"]
include = ["Cargo.toml", "src/**/*.rs", "tests/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"]

[dependencies]
proc-macro2 = "0.3"
proc-macro2 = { version = "0.3", default-features = false }

[features]
default = ["proc-macro"]
# Disabling the proc-macro feature removes the dynamic library dependency on
# libproc_macro in the rustc compiler.
proc-macro = ["proc-macro2/proc-macro"]
4 changes: 4 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
#![doc(html_root_url = "https://docs.rs/quote/0.4.2")]

extern crate proc_macro2;
#[cfg(feature = "proc-macro")]
extern crate proc_macro;

mod tokens;
Expand Down Expand Up @@ -161,7 +162,10 @@ pub mod __rt {
/// # Example
///
/// ```
/// # #[cfg(feature = "proc-macro")]
/// extern crate proc_macro;
/// # #[cfg(not(feature = "proc-macro"))]
/// # extern crate proc_macro2 as proc_macro;
///
/// #[macro_use]
/// extern crate quote;
Expand Down
2 changes: 2 additions & 0 deletions src/tokens.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use super::ToTokens;
use std::fmt::{self, Debug, Display};
use std::hash::{Hash, Hasher};

#[cfg(feature = "proc-macro")]
use proc_macro;
use proc_macro2::{TokenStream, TokenTree};

Expand Down Expand Up @@ -108,6 +109,7 @@ impl From<Tokens> for TokenStream {
}
}

#[cfg(feature = "proc-macro")]
impl From<Tokens> for proc_macro::TokenStream {
fn from(tokens: Tokens) -> proc_macro::TokenStream {
TokenStream::from(tokens).into()
Expand Down

0 comments on commit 9efc2e5

Please sign in to comment.