diff --git a/derive/Cargo.toml b/derive/Cargo.toml index 693e2bc1..dfaaa3e6 100644 --- a/derive/Cargo.toml +++ b/derive/Cargo.toml @@ -18,4 +18,4 @@ proc-macro = true quote = "1.0" syn = { version = "1.0", features = ["derive", "visit", "visit-mut", "extra-traits"] } proc-macro2 = "1.0" -proc-macro-crate = "0.1.5" +proc-macro-crate = "1" diff --git a/derive/src/lib.rs b/derive/src/lib.rs index f7cae75b..9ffef3ee 100644 --- a/derive/src/lib.rs +++ b/derive/src/lib.rs @@ -125,7 +125,13 @@ fn generate_type(input: TokenStream2) -> Result { /// Get the name of a crate, to be robust against renamed dependencies. fn crate_name_ident(name: &str) -> Result { proc_macro_crate::crate_name(name) - .map(|crate_name| Ident::new(&crate_name, Span::call_site())) + .map(|crate_name| { + use proc_macro_crate::FoundCrate::*; + match crate_name { + Itself => Ident::new("self", Span::call_site()), + Name(name) => Ident::new(&name, Span::call_site()), + } + }) .map_err(|e| syn::Error::new(Span::call_site(), &e)) }