IssueRaiser

Tracking Issue: Procedural Macro Diagnostics (RFC 1566)

<!-- homu-ignore:start --> *[View all comments](https://triagebot.infra.rust-lang.org/gh-comments/rust-lang/rust/issues/54140)* <!-- homu-ignore:end --> This is a tracking issue for diagnostics for procedural macros spawned off from https://github.com/rust-lang/rust/issues/38356. ## Overview ### Current Status * Implemented under `feature(proc_macro_diagnostic)` * In use by Rocket, Diesel, Maud ### Next Steps - [x] https://github.com/rust-lang/rust/pull/44125 - [x] Implement introspection methods (https://github.com/rust-lang/rust/pull/52896) - [x] Implement multi-span support (https://github.com/rust-lang/rust/pull/52896) - [ ] Implement lint id for warnings (https://github.com/rust-lang/rust/pull/135432) - [ ] Document thoroughly - [ ] Stabilize ## Summary The initial API was implemented in https://github.com/rust-lang/rust/pull/44125 and is being used by crates like Rocket and Diesel to emit user-friendly diagnostics. Apart from thorough documentation, I see two blockers for stabilization: 1. **Multi-Span Support** At present, it is not possible to create/emit a diagnostic via `proc_macro` that points to more than one `Span`. The internal diagnostics API makes this possible, and we should expose this as well. The changes necessary to support this are fairly minor: a `Diagnostic` should encapsulate a `Vec<Span>` as opposed to a `Span`, and the `span_` methods should be made generic such that either a `Span` or a `Vec<Span>` (ideally also a `&[Ve

Posted by SergioBenitez on Sep 11, 2018, 9:01 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.4,000 issues0 comments

support (Sysadmin)

Tracking Issue: Procedural Macro Diagnostics (RFC 1566)

SergioBenitezSep 11, 2018, 9:01 PM

<!-- homu-ignore:start --> *[View all comments](https://triagebot.infra.rust-lang.org/gh-comments/rust-lang/rust/issues/54140)* <!-- homu-ignore:end --> This is a tracking issue for diagnostics for procedural macros spawned off from https://github.com/rust-lang/rust/issues/38356. ## Overview ### Current Status * Implemented under `feature(proc_macro_diagnostic)` * In use by Rocket, Diesel, Maud ### Next Steps - [x] https://github.com/rust-lang/rust/pull/44125 - [x] Implement introspection methods (https://github.com/rust-lang/rust/pull/52896) - [x] Implement multi-span support (https://github.com/rust-lang/rust/pull/52896) - [ ] Implement lint id for warnings (https://github.com/rust-lang/rust/pull/135432) - [ ] Document thoroughly - [ ] Stabilize ## Summary The initial API was implemented in https://github.com/rust-lang/rust/pull/44125 and is being used by crates like Rocket and Diesel to emit user-friendly diagnostics. Apart from thorough documentation, I see two blockers for stabilization: 1. **Multi-Span Support** At present, it is not possible to create/emit a diagnostic via `proc_macro` that points to more than one `Span`. The internal diagnostics API makes this possible, and we should expose this as well. The changes necessary to support this are fairly minor: a `Diagnostic` should encapsulate a `Vec<Span>` as opposed to a `Span`, and the `span_` methods should be made generic such that either a `Span` or a `Vec<Span>` (ideally also a `&[Ve

Comments (0)

No comments yet. Start the discussion.

Comment on this issue