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