diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index 1505fe0369d..b39f9f87892 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -690,25 +690,29 @@ fn next(&mut self) -> Option { } crate struct ExtraInfo<'tcx> { - hir_id: Option, - item_did: Option, + id: ExtraInfoId, sp: Span, tcx: TyCtxt<'tcx>, } +enum ExtraInfoId { + Hir(HirId), + Def(DefId), +} + impl<'tcx> ExtraInfo<'tcx> { crate fn new(tcx: TyCtxt<'tcx>, hir_id: HirId, sp: Span) -> ExtraInfo<'tcx> { - ExtraInfo { hir_id: Some(hir_id), item_did: None, sp, tcx } + ExtraInfo { id: ExtraInfoId::Hir(hir_id), sp, tcx } } crate fn new_did(tcx: TyCtxt<'tcx>, did: DefId, sp: Span) -> ExtraInfo<'tcx> { - ExtraInfo { hir_id: None, item_did: Some(did), sp, tcx } + ExtraInfo { id: ExtraInfoId::Def(did), sp, tcx } } fn error_invalid_codeblock_attr(&self, msg: &str, help: &str) { - let hir_id = match (self.hir_id, self.item_did) { - (Some(h), _) => h, - (None, Some(item_did)) => { + let hir_id = match self.id { + ExtraInfoId::Hir(hir_id) => hir_id, + ExtraInfoId::Def(item_did) => { match item_did.as_local() { Some(item_did) => self.tcx.hir().local_def_id_to_hir_id(item_did), None => { @@ -717,7 +721,6 @@ fn error_invalid_codeblock_attr(&self, msg: &str, help: &str) { } } } - (None, None) => return, }; self.tcx.struct_span_lint_hir( crate::lint::INVALID_CODEBLOCK_ATTRIBUTES,