diff --git a/num_enum_derive/Cargo.toml b/num_enum_derive/Cargo.toml index e47b9ee..64529bb 100644 --- a/num_enum_derive/Cargo.toml +++ b/num_enum_derive/Cargo.toml @@ -32,6 +32,6 @@ features = ["external_doc"] [dependencies] proc-macro2 = "1" -proc-macro-crate = { version = "0.1.4", optional = true } +proc-macro-crate = { version = "1", optional = true } quote = "1" syn = { version = "1", features = ["parsing"] } diff --git a/num_enum_derive/src/lib.rs b/num_enum_derive/src/lib.rs index bc237f5..0bffadb 100644 --- a/num_enum_derive/src/lib.rs +++ b/num_enum_derive/src/lib.rs @@ -574,10 +574,17 @@ pub fn derive_try_from_primitive(input: TokenStream) -> TokenStream { #[cfg(feature = "proc-macro-crate")] fn get_crate_name() -> String { - ::proc_macro_crate::crate_name("num_enum").unwrap_or_else(|err| { + let found_crate = proc_macro_crate::crate_name("num_enum").unwrap_or_else(|err| { eprintln!("Warning: {}\n => defaulting to `num_enum`", err,); - String::from("num_enum") - }) + proc_macro_crate::FoundCrate::Itself + }); + + let crate_name = match found_crate { + proc_macro_crate::FoundCrate::Itself => String::from("num_enum"), + proc_macro_crate::FoundCrate::Name(name) => name, + }; + + crate_name } // Don't depend on proc-macro-crate in no_std environments because it causes an awkward dependency