diff options
| author | Denys Otrishko <shishugi@gmail.com> | 2019-07-17 09:55:15 +0300 |
|---|---|---|
| committer | Denys Otrishko <shishugi@gmail.com> | 2019-07-17 16:59:07 +0300 |
| commit | d9ad04a0f0feb96bc903a00a9ba79d979728edcd (patch) | |
| tree | f08b8d5367c13ee079389cb624342d399efdb54e /src | |
| parent | d56128d2919132aceaf74cc3c68a4554f5445fce (diff) | |
| download | rust-d9ad04a0f0feb96bc903a00a9ba79d979728edcd.tar.gz rust-d9ad04a0f0feb96bc903a00a9ba79d979728edcd.zip | |
rustc_typeck: extract common placeholder type diagnostic code
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/collect.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 5420a2407e6..7b24d515737 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -160,6 +160,16 @@ impl Visitor<'tcx> for CollectItemTypesVisitor<'tcx> { /////////////////////////////////////////////////////////////////////////// // Utility types and common code for the above passes. +fn bad_placeholder_type(tcx: TyCtxt<'tcx>, span: Span) -> errors::DiagnosticBuilder<'tcx> { + let mut diag = tcx.sess.struct_span_err_with_code( + span, + "the type placeholder `_` is not allowed within types on item signatures", + DiagnosticId::Error("E0121".into()), + ); + diag.span_label(span, "not allowed in type signatures"); + diag +} + impl ItemCtxt<'tcx> { pub fn new(tcx: TyCtxt<'tcx>, item_def_id: DefId) -> ItemCtxt<'tcx> { ItemCtxt { tcx, item_def_id } @@ -191,12 +201,7 @@ impl AstConv<'tcx> for ItemCtxt<'tcx> { } fn ty_infer(&self, _: Option<&ty::GenericParamDef>, span: Span) -> Ty<'tcx> { - self.tcx().sess.struct_span_err_with_code( - span, - "the type placeholder `_` is not allowed within types on item signatures", - DiagnosticId::Error("E0121".into()), - ).span_label(span, "not allowed in type signatures") - .emit(); + bad_placeholder_type(self.tcx(), span).emit(); self.tcx().types.err } @@ -207,12 +212,7 @@ impl AstConv<'tcx> for ItemCtxt<'tcx> { _: Option<&ty::GenericParamDef>, span: Span, ) -> &'tcx Const<'tcx> { - self.tcx().sess.struct_span_err_with_code( - span, - "the const placeholder `_` is not allowed within types on item signatures", - DiagnosticId::Error("E0121".into()), - ).span_label(span, "not allowed in type signatures") - .emit(); + bad_placeholder_type(self.tcx(), span).emit(); self.tcx().consts.err } |
