Skip to content

Commit d9ad04a

Browse files
committed
rustc_typeck: extract common placeholder type diagnostic code
1 parent d56128d commit d9ad04a

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/librustc_typeck/collect.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,16 @@ impl Visitor<'tcx> for CollectItemTypesVisitor<'tcx> {
160160
///////////////////////////////////////////////////////////////////////////
161161
// Utility types and common code for the above passes.
162162

163+
fn bad_placeholder_type(tcx: TyCtxt<'tcx>, span: Span) -> errors::DiagnosticBuilder<'tcx> {
164+
let mut diag = tcx.sess.struct_span_err_with_code(
165+
span,
166+
"the type placeholder `_` is not allowed within types on item signatures",
167+
DiagnosticId::Error("E0121".into()),
168+
);
169+
diag.span_label(span, "not allowed in type signatures");
170+
diag
171+
}
172+
163173
impl ItemCtxt<'tcx> {
164174
pub fn new(tcx: TyCtxt<'tcx>, item_def_id: DefId) -> ItemCtxt<'tcx> {
165175
ItemCtxt { tcx, item_def_id }
@@ -191,12 +201,7 @@ impl AstConv<'tcx> for ItemCtxt<'tcx> {
191201
}
192202

193203
fn ty_infer(&self, _: Option<&ty::GenericParamDef>, span: Span) -> Ty<'tcx> {
194-
self.tcx().sess.struct_span_err_with_code(
195-
span,
196-
"the type placeholder `_` is not allowed within types on item signatures",
197-
DiagnosticId::Error("E0121".into()),
198-
).span_label(span, "not allowed in type signatures")
199-
.emit();
204+
bad_placeholder_type(self.tcx(), span).emit();
200205

201206
self.tcx().types.err
202207
}
@@ -207,12 +212,7 @@ impl AstConv<'tcx> for ItemCtxt<'tcx> {
207212
_: Option<&ty::GenericParamDef>,
208213
span: Span,
209214
) -> &'tcx Const<'tcx> {
210-
self.tcx().sess.struct_span_err_with_code(
211-
span,
212-
"the const placeholder `_` is not allowed within types on item signatures",
213-
DiagnosticId::Error("E0121".into()),
214-
).span_label(span, "not allowed in type signatures")
215-
.emit();
215+
bad_placeholder_type(self.tcx(), span).emit();
216216

217217
self.tcx().consts.err
218218
}

0 commit comments

Comments
 (0)