diff options
| author | Michael Goulet <michael@errs.io> | 2022-07-08 03:21:49 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-07-10 23:43:46 +0000 |
| commit | d2e5a929b99d8c26509ed638fb3b754c6603accf (patch) | |
| tree | b1562007a389059bf6441c553515f03abc2ad889 | |
| parent | 2a973e2abc2aaca790980032cc839183ef01d2c1 (diff) | |
| download | rust-d2e5a929b99d8c26509ed638fb3b754c6603accf.tar.gz rust-d2e5a929b99d8c26509ed638fb3b754c6603accf.zip | |
use subdiagnostic for message
| -rw-r--r-- | compiler/rustc_error_messages/locales/en-US/expand.ftl | 5 | ||||
| -rw-r--r-- | compiler/rustc_error_messages/src/lib.rs | 3 | ||||
| -rw-r--r-- | compiler/rustc_expand/src/mbe/macro_rules.rs | 18 |
3 files changed, 23 insertions, 3 deletions
diff --git a/compiler/rustc_error_messages/locales/en-US/expand.ftl b/compiler/rustc_error_messages/locales/en-US/expand.ftl new file mode 100644 index 00000000000..8d506a3ea8b --- /dev/null +++ b/compiler/rustc_error_messages/locales/en-US/expand.ftl @@ -0,0 +1,5 @@ +expand-explain-doc-comment-outer = + outer doc comments expand to `#[doc = "..."]`, which is what this macro attempted to match + +expand-explain-doc-comment-inner = + inner doc comments expand to `#![doc = "..."]`, which is what this macro attempted to match diff --git a/compiler/rustc_error_messages/src/lib.rs b/compiler/rustc_error_messages/src/lib.rs index 5a482bc5b2c..d16171cb162 100644 --- a/compiler/rustc_error_messages/src/lib.rs +++ b/compiler/rustc_error_messages/src/lib.rs @@ -33,11 +33,12 @@ pub use unic_langid::{langid, LanguageIdentifier}; fluent_messages! { borrowck => "../locales/en-US/borrowck.ftl", builtin_macros => "../locales/en-US/builtin_macros.ftl", + const_eval => "../locales/en-US/const_eval.ftl", + expand => "../locales/en-US/expand.ftl", lint => "../locales/en-US/lint.ftl", parser => "../locales/en-US/parser.ftl", privacy => "../locales/en-US/privacy.ftl", typeck => "../locales/en-US/typeck.ftl", - const_eval => "../locales/en-US/const_eval.ftl", } pub use fluent_generated::{self as fluent, DEFAULT_LOCALE_RESOURCES}; diff --git a/compiler/rustc_expand/src/mbe/macro_rules.rs b/compiler/rustc_expand/src/mbe/macro_rules.rs index d2fae17a43b..3e9ddd6aec0 100644 --- a/compiler/rustc_expand/src/mbe/macro_rules.rs +++ b/compiler/rustc_expand/src/mbe/macro_rules.rs @@ -594,6 +594,20 @@ pub fn compile_declarative_macro( (mk_syn_ext(expander), rule_spans) } +#[derive(SessionSubdiagnostic)] +enum ExplainDocComment { + #[label(expand::explain_doc_comment_inner)] + Inner { + #[primary_span] + span: Span, + }, + #[label(expand::explain_doc_comment_outer)] + Outer { + #[primary_span] + span: Span, + }, +} + fn annotate_doc_comment( err: &mut DiagnosticBuilder<'_, ErrorGuaranteed>, sm: &SourceMap, @@ -601,9 +615,9 @@ fn annotate_doc_comment( ) { if let Ok(src) = sm.span_to_snippet(span) { if src.starts_with("///") || src.starts_with("/**") { - err.span_label(span, "outer doc comments expand to `#[doc = \"...\"]`, which is what this macro attempted to match"); + err.subdiagnostic(ExplainDocComment::Outer { span }); } else if src.starts_with("//!") || src.starts_with("/*!") { - err.span_label(span, "inner doc comments expand to `#![doc = \"...\"]`, which is what this macro attempted to match"); + err.subdiagnostic(ExplainDocComment::Inner { span }); } } } |
