NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #358 most downloaded on crates.io
Attribute macro for proc-macro-error crate
Last release 6 years ago
no release in 18 months
Release timing varies
gaps range from 1 weeks to 3 months
Nearly every release is documented
notes for 18 of 20 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
22 releases · first in 2019
SpanRange facility is now public.
SpanRange facility is now public.syn-error feature so you can opt-out from the syn dependency.Fixed the emit_call_site_warning macro.
emit_call_site_warning macro.An obsolete note was removed from documentation.
One column per quarter.
proc-macro-hack is now well tested and supported. Not sure about proc-macro-nested, please fill a request if you need it.
proc-macro-hack is now well tested and supported. Not sure about proc-macro-nested,
please fill a request if you need it.emit_call_site_error.I believe the API can be considered stable because it's been a few months without breaking changes, and I also don't think this crate will receive muc…
I believe the API can be considered stable because it's been a few months without breaking changes, and I also don't think this crate will receive much further evolution. It's perfect, admit it.
Hence, meet the new, stable release!
#[proc_macro_error] attributes. Well, you aren't supposed to do that,
but I caught myself doing it by accident on one occasion and the behavior was... surprising.
Better to handle this smooth.Error message on macros' misuse is now a bit more understandable.
build.rs no longer fails when rustc date could not be determined, (thanks to `Fabian Möller` for noticing and to `Igor Gnatenko` for fixing).
build.rs no longer fails when rustc date could not be determined,
(thanks to Fabian Möller
for noticing and to Igor Gnatenko
for fixing).proc-macro-error doesn't depend on syn\[full\] anymore, the compilation is \~30secs faster.
proc-macro-error doesn't depend on syn[full] anymore, the compilation
is ~30secs faster.* New function: append_dummy.
append_dummy.* Support for children messages
Now any type that implements quote::ToTokens can be used instead of spans. This allows for high quality error messages.
quote::ToTokens can be used instead of spans.
This allows for high quality error messages.From implementation doesn't lose span info anymore, see #6.
From<syn::Error> implementation doesn't lose span info anymore, see
#6.Just a small intermediate release.
Just a small intermediate release.
Nothing published for this version
Fixed __pme__suggestions not found bug
__pme__suggestions not found bug"help" messages that can have their own span on nightly, they inherit parent span on stable. `rust let cond_help = if condition { Some("some help mess
let cond_help = if condition { Some("some help message") else { None } };
abort!(
span, // parent span
"something's wrong, {} wrongs in total", 10; // main message
help = "here's a help for you, {}", "take it"; // unconditional help message
help =? cond_help; // conditional help message, must be Option
note = note_span => "don't forget the note, {}", "would you?" // notes can have their own span but it's effective only on nightly
)
emit_warning and emit_warning_call_site. Nightly only, they're ignored on stable.proc-macro-error delegates to proc_macro::Diagnostic on nightly.MacroError is now replaced by Diagnostic. Its API resembles proc_macro::Diagnostic.Diagnostic does not implement From<&str/String> so Result<T, &str/String>::abort_or_exit()
won't work anymore (nobody used it anyway).macro_error! macro is replaced with diagnostic!.proc-macro-error renders notes exactly just like rustc does.#[proc_macro_error] anymore,
only looking at the signature. This should somewhat decrease expansion time for large functions.Nothing published for this version
Now you can use any word instead of "help", undocumented.
Introduced support for "help" messages, undocumented.
call_site_error => abort_call_site
span_error => abortcall_site_error => abort_call_sitefilter_macro_errors was replaced by #[proc_macro_error] attribute.set_dummy now takes TokenStream instead of Option<TokenStream>emit_error and emit_call_site_errormacro_error macro for building errors in format=like style.MacroError API had been reconsidered. It also now implements quote::ToTokens.Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →