diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-02-23 06:04:37 +0100 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-02-24 00:59:38 +0100 |
| commit | b01c1e2092b0d3c4e86aedf1e0875898fbde21e3 (patch) | |
| tree | c45793911cee907f35ecd5ac94355c49ee062744 /src/librustc_parse | |
| parent | ab84914fe47aa2da615c9e759e686d1a45f8aae3 (diff) | |
| download | rust-b01c1e2092b0d3c4e86aedf1e0875898fbde21e3.tar.gz rust-b01c1e2092b0d3c4e86aedf1e0875898fbde21e3.zip | |
parser: tweak item kind wording
Diffstat (limited to 'src/librustc_parse')
| -rw-r--r-- | src/librustc_parse/parser/item.rs | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/librustc_parse/parser/item.rs b/src/librustc_parse/parser/item.rs index d2073a5473a..0e0017d4ee5 100644 --- a/src/librustc_parse/parser/item.rs +++ b/src/librustc_parse/parser/item.rs @@ -661,12 +661,7 @@ impl<'a> Parser<'a> { self.struct_span_err(span, "associated `static` items are not allowed").emit(); AssocItemKind::Const(a, b) } - _ => { - let span = self.sess.source_map().def_span(span); - self.struct_span_err(span, "item kind not supported in `trait` or `impl`") - .emit(); - return None; - } + _ => return self.error_bad_item_kind(span, &kind, "`trait` or `impl`"), }; Some(P(Item { attrs, id, span, vis, ident, defaultness, kind, tokens })) })) @@ -858,16 +853,19 @@ impl<'a> Parser<'a> { self.error_on_foreign_const(span, ident); ForeignItemKind::Static(a, Mutability::Not, b) } - _ => { - let span = self.sess.source_map().def_span(span); - self.struct_span_err(span, "item kind not supported in `extern` block").emit(); - return None; - } + _ => return self.error_bad_item_kind(span, &kind, "`extern` block"), }; Some(P(Item { attrs, id, span, vis, ident, defaultness, kind, tokens })) })) } + fn error_bad_item_kind<T>(&self, span: Span, kind: &ItemKind, ctx: &str) -> Option<T> { + let span = self.sess.source_map().def_span(span); + let msg = format!("{} not supported in {}", kind.descr(), ctx); + self.struct_span_err(span, &msg).emit(); + return None; + } + fn error_on_foreign_const(&self, span: Span, ident: Ident) { self.struct_span_err(ident.span, "extern items cannot be `const`") .span_suggestion( |
