- if check_missing_code && tests.found_tests == 0 {
- let sp = span_of_attrs(&item.attrs).unwrap_or(item.source.span());
- cx.tcx.struct_span_lint_hir(lint::builtin::MISSING_DOC_CODE_EXAMPLES, hir_id, sp, |lint| {
- lint.build("missing code example in this documentation").emit()
- });
- } else if !check_missing_code
+ if tests.found_tests == 0 {
+ use clean::ItemEnum::*;
+
+ let should_report = match item.inner {
+ ExternCrateItem(_, _) | ImportItem(_) | PrimitiveItem(_) | KeywordItem(_) => false,
+ _ => true,
+ };
+ if should_report {
+ debug!("reporting error for {:?} (hir_id={:?})", item, hir_id);
+ let sp = span_of_attrs(&item.attrs).unwrap_or(item.source.span());
+ cx.tcx.struct_span_lint_hir(
+ lint::builtin::MISSING_DOC_CODE_EXAMPLES,
+ hir_id,
+ sp,
+ |lint| lint.build("missing code example in this documentation").emit(),
+ );
+ }
+ } else if rustc_feature::UnstableFeatures::from_environment().is_nightly_build()