1ea88969fSopenharmony_ci# v1.0.4 (2020-7-31) 2ea88969fSopenharmony_ci 3ea88969fSopenharmony_ci* `SpanRange` facility is now public. 4ea88969fSopenharmony_ci* Docs have been improved. 5ea88969fSopenharmony_ci* Introduced the `syn-error` feature so you can opt-out from the `syn` dependency. 6ea88969fSopenharmony_ci 7ea88969fSopenharmony_ci# v1.0.3 (2020-6-26) 8ea88969fSopenharmony_ci 9ea88969fSopenharmony_ci* Corrected a few typos. 10ea88969fSopenharmony_ci* Fixed the `emit_call_site_warning` macro. 11ea88969fSopenharmony_ci 12ea88969fSopenharmony_ci# v1.0.2 (2020-4-9) 13ea88969fSopenharmony_ci 14ea88969fSopenharmony_ci* An obsolete note was removed from documentation. 15ea88969fSopenharmony_ci 16ea88969fSopenharmony_ci# v1.0.1 (2020-4-9) 17ea88969fSopenharmony_ci 18ea88969fSopenharmony_ci* `proc-macro-hack` is now well tested and supported. Not sure about `proc-macro-nested`, 19ea88969fSopenharmony_ci please fill a request if you need it. 20ea88969fSopenharmony_ci* Fixed `emit_call_site_error`. 21ea88969fSopenharmony_ci* Documentation improvements. 22ea88969fSopenharmony_ci 23ea88969fSopenharmony_ci# v1.0.0 (2020-3-25) 24ea88969fSopenharmony_ci 25ea88969fSopenharmony_ciI believe the API can be considered stable because it's been a few months without 26ea88969fSopenharmony_cibreaking changes, and I also don't think this crate will receive much further evolution. 27ea88969fSopenharmony_ciIt's perfect, admit it. 28ea88969fSopenharmony_ci 29ea88969fSopenharmony_ciHence, meet the new, stable release! 30ea88969fSopenharmony_ci 31ea88969fSopenharmony_ci### Improvements 32ea88969fSopenharmony_ci 33ea88969fSopenharmony_ci* Supported nested `#[proc_macro_error]` attributes. Well, you aren't supposed to do that, 34ea88969fSopenharmony_ci but I caught myself doing it by accident on one occasion and the behavior was... surprising. 35ea88969fSopenharmony_ci Better to handle this smooth. 36ea88969fSopenharmony_ci 37ea88969fSopenharmony_ci# v0.4.12 (2020-3-23) 38ea88969fSopenharmony_ci 39ea88969fSopenharmony_ci* Error message on macros' misuse is now a bit more understandable. 40ea88969fSopenharmony_ci 41ea88969fSopenharmony_ci# v0.4.11 (2020-3-02) 42ea88969fSopenharmony_ci 43ea88969fSopenharmony_ci* `build.rs` no longer fails when `rustc` date could not be determined, 44ea88969fSopenharmony_ci (thanks to [`Fabian Möller`](https://gitlab.com/CreepySkeleton/proc-macro-error/issues/8) 45ea88969fSopenharmony_ci for noticing and to [`Igor Gnatenko`](https://gitlab.com/CreepySkeleton/proc-macro-error/-/merge_requests/25) 46ea88969fSopenharmony_ci for fixing). 47ea88969fSopenharmony_ci 48ea88969fSopenharmony_ci# v0.4.10 (2020-2-29) 49ea88969fSopenharmony_ci 50ea88969fSopenharmony_ci* `proc-macro-error` doesn't depend on syn\[full\] anymore, the compilation 51ea88969fSopenharmony_ci is \~30secs faster. 52ea88969fSopenharmony_ci 53ea88969fSopenharmony_ci# v0.4.9 (2020-2-13) 54ea88969fSopenharmony_ci 55ea88969fSopenharmony_ci* New function: `append_dummy`. 56ea88969fSopenharmony_ci 57ea88969fSopenharmony_ci# v0.4.8 (2020-2-01) 58ea88969fSopenharmony_ci 59ea88969fSopenharmony_ci* Support for children messages 60ea88969fSopenharmony_ci 61ea88969fSopenharmony_ci# v0.4.7 (2020-1-31) 62ea88969fSopenharmony_ci 63ea88969fSopenharmony_ci* Now any type that implements `quote::ToTokens` can be used instead of spans. 64ea88969fSopenharmony_ci This allows for high quality error messages. 65ea88969fSopenharmony_ci 66ea88969fSopenharmony_ci# v0.4.6 (2020-1-31) 67ea88969fSopenharmony_ci 68ea88969fSopenharmony_ci* `From<syn::Error>` implementation doesn't lose span info anymore, see 69ea88969fSopenharmony_ci [#6](https://gitlab.com/CreepySkeleton/proc-macro-error/issues/6). 70ea88969fSopenharmony_ci 71ea88969fSopenharmony_ci# v0.4.5 (2020-1-20) 72ea88969fSopenharmony_ciJust a small intermediate release. 73ea88969fSopenharmony_ci 74ea88969fSopenharmony_ci* Fix some bugs. 75ea88969fSopenharmony_ci* Populate license files into subfolders. 76ea88969fSopenharmony_ci 77ea88969fSopenharmony_ci# v0.4.4 (2019-11-13) 78ea88969fSopenharmony_ci* Fix `abort_if_dirty` + warnings bug 79ea88969fSopenharmony_ci* Allow trailing commas in macros 80ea88969fSopenharmony_ci 81ea88969fSopenharmony_ci# v0.4.2 (2019-11-7) 82ea88969fSopenharmony_ci* FINALLY fixed `__pme__suggestions not found` bug 83ea88969fSopenharmony_ci 84ea88969fSopenharmony_ci# v0.4.1 (2019-11-7) YANKED 85ea88969fSopenharmony_ci* Fixed `__pme__suggestions not found` bug 86ea88969fSopenharmony_ci* Documentation improvements, links checked 87ea88969fSopenharmony_ci 88ea88969fSopenharmony_ci# v0.4.0 (2019-11-6) YANKED 89ea88969fSopenharmony_ci 90ea88969fSopenharmony_ci## New features 91ea88969fSopenharmony_ci* "help" messages that can have their own span on nightly, they 92ea88969fSopenharmony_ci inherit parent span on stable. 93ea88969fSopenharmony_ci ```rust 94ea88969fSopenharmony_ci let cond_help = if condition { Some("some help message") else { None } }; 95ea88969fSopenharmony_ci abort!( 96ea88969fSopenharmony_ci span, // parent span 97ea88969fSopenharmony_ci "something's wrong, {} wrongs in total", 10; // main message 98ea88969fSopenharmony_ci help = "here's a help for you, {}", "take it"; // unconditional help message 99ea88969fSopenharmony_ci help =? cond_help; // conditional help message, must be Option 100ea88969fSopenharmony_ci note = note_span => "don't forget the note, {}", "would you?" // notes can have their own span but it's effective only on nightly 101ea88969fSopenharmony_ci ) 102ea88969fSopenharmony_ci ``` 103ea88969fSopenharmony_ci* Warnings via `emit_warning` and `emit_warning_call_site`. Nightly only, they're ignored on stable. 104ea88969fSopenharmony_ci* Now `proc-macro-error` delegates to `proc_macro::Diagnostic` on nightly. 105ea88969fSopenharmony_ci 106ea88969fSopenharmony_ci## Breaking changes 107ea88969fSopenharmony_ci* `MacroError` is now replaced by `Diagnostic`. Its API resembles `proc_macro::Diagnostic`. 108ea88969fSopenharmony_ci* `Diagnostic` does not implement `From<&str/String>` so `Result<T, &str/String>::abort_or_exit()` 109ea88969fSopenharmony_ci won't work anymore (nobody used it anyway). 110ea88969fSopenharmony_ci* `macro_error!` macro is replaced with `diagnostic!`. 111ea88969fSopenharmony_ci 112ea88969fSopenharmony_ci## Improvements 113ea88969fSopenharmony_ci* Now `proc-macro-error` renders notes exactly just like rustc does. 114ea88969fSopenharmony_ci* We don't parse a body of a function annotated with `#[proc_macro_error]` anymore, 115ea88969fSopenharmony_ci only looking at the signature. This should somewhat decrease expansion time for large functions. 116ea88969fSopenharmony_ci 117ea88969fSopenharmony_ci# v0.3.3 (2019-10-16) 118ea88969fSopenharmony_ci* Now you can use any word instead of "help", undocumented. 119ea88969fSopenharmony_ci 120ea88969fSopenharmony_ci# v0.3.2 (2019-10-16) 121ea88969fSopenharmony_ci* Introduced support for "help" messages, undocumented. 122ea88969fSopenharmony_ci 123ea88969fSopenharmony_ci# v0.3.0 (2019-10-8) 124ea88969fSopenharmony_ci 125ea88969fSopenharmony_ci## The crate has been completely rewritten from scratch! 126ea88969fSopenharmony_ci 127ea88969fSopenharmony_ci## Changes (most are breaking): 128ea88969fSopenharmony_ci* Renamed macros: 129ea88969fSopenharmony_ci * `span_error` => `abort` 130ea88969fSopenharmony_ci * `call_site_error` => `abort_call_site` 131ea88969fSopenharmony_ci* `filter_macro_errors` was replaced by `#[proc_macro_error]` attribute. 132ea88969fSopenharmony_ci* `set_dummy` now takes `TokenStream` instead of `Option<TokenStream>` 133ea88969fSopenharmony_ci* Support for multiple errors via `emit_error` and `emit_call_site_error` 134ea88969fSopenharmony_ci* New `macro_error` macro for building errors in format=like style. 135ea88969fSopenharmony_ci* `MacroError` API had been reconsidered. It also now implements `quote::ToTokens`. 136ea88969fSopenharmony_ci 137ea88969fSopenharmony_ci# v0.2.6 (2019-09-02) 138ea88969fSopenharmony_ci* Introduce support for dummy implementations via `dummy::set_dummy` 139ea88969fSopenharmony_ci* `multi::*` is now deprecated, will be completely rewritten in v0.3 140ea88969fSopenharmony_ci 141ea88969fSopenharmony_ci# v0.2.0 (2019-08-15) 142ea88969fSopenharmony_ci 143ea88969fSopenharmony_ci## Breaking changes 144ea88969fSopenharmony_ci* `trigger_error` replaced with `MacroError::trigger` and `filter_macro_error_panics` 145ea88969fSopenharmony_ci is hidden from docs. 146ea88969fSopenharmony_ci This is not quite a breaking change since users weren't supposed to use these functions directly anyway. 147ea88969fSopenharmony_ci* All dependencies are updated to `v1.*`. 148ea88969fSopenharmony_ci 149ea88969fSopenharmony_ci## New features 150ea88969fSopenharmony_ci* Ability to stack multiple errors via `multi::MultiMacroErrors` and emit them at once. 151ea88969fSopenharmony_ci 152ea88969fSopenharmony_ci## Improvements 153ea88969fSopenharmony_ci* Now `MacroError` implements `std::fmt::Display` instead of `std::string::ToString`. 154ea88969fSopenharmony_ci* `MacroError::span` inherent method. 155ea88969fSopenharmony_ci* `From<MacroError> for proc_macro/proc_macro2::TokenStream` implementations. 156ea88969fSopenharmony_ci* `AsRef/AsMut<String> for MacroError` implementations. 157ea88969fSopenharmony_ci 158ea88969fSopenharmony_ci# v0.1.x (2019-07-XX) 159ea88969fSopenharmony_ci 160ea88969fSopenharmony_ci## New features 161ea88969fSopenharmony_ci* An easy way to report errors inside within a proc-macro via `span_error`, 162ea88969fSopenharmony_ci `call_site_error` and `filter_macro_errors`. 163