Fix rustc::internal lints on rustdoc
This commit is contained in:
parent
65767e5653
commit
a194881991
10 changed files with 30 additions and 30 deletions
|
@ -1,4 +1,4 @@
|
||||||
use std::collections::{BTreeMap, HashMap};
|
use std::collections::BTreeMap;
|
||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
use std::ffi::OsStr;
|
use std::ffi::OsStr;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
@ -219,7 +219,7 @@ crate struct RenderOptions {
|
||||||
crate extern_html_root_urls: BTreeMap<String, String>,
|
crate extern_html_root_urls: BTreeMap<String, String>,
|
||||||
/// A map of the default settings (values are as for DOM storage API). Keys should lack the
|
/// A map of the default settings (values are as for DOM storage API). Keys should lack the
|
||||||
/// `rustdoc-` prefix.
|
/// `rustdoc-` prefix.
|
||||||
crate default_settings: HashMap<String, String>,
|
crate default_settings: FxHashMap<String, String>,
|
||||||
/// If present, suffix added to CSS/JavaScript files when referencing them in generated pages.
|
/// If present, suffix added to CSS/JavaScript files when referencing them in generated pages.
|
||||||
crate resource_suffix: String,
|
crate resource_suffix: String,
|
||||||
/// Whether to run the static CSS/JavaScript through a minifier when outputting them. `true` by
|
/// Whether to run the static CSS/JavaScript through a minifier when outputting them. `true` by
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use rustc_ast as ast;
|
use rustc_ast as ast;
|
||||||
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
use rustc_data_structures::sync::Lrc;
|
use rustc_data_structures::sync::Lrc;
|
||||||
use rustc_errors::{ColorConfig, ErrorReported};
|
use rustc_errors::{ColorConfig, ErrorReported};
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
|
@ -16,7 +17,6 @@ use rustc_span::{BytePos, FileName, Pos, Span, DUMMY_SP};
|
||||||
use rustc_target::spec::TargetTriple;
|
use rustc_target::spec::TargetTriple;
|
||||||
use tempfile::Builder as TempFileBuilder;
|
use tempfile::Builder as TempFileBuilder;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::io::{self, Write};
|
use std::io::{self, Write};
|
||||||
use std::panic;
|
use std::panic;
|
||||||
|
@ -703,7 +703,7 @@ crate struct Collector {
|
||||||
position: Span,
|
position: Span,
|
||||||
source_map: Option<Lrc<SourceMap>>,
|
source_map: Option<Lrc<SourceMap>>,
|
||||||
filename: Option<PathBuf>,
|
filename: Option<PathBuf>,
|
||||||
visited_tests: HashMap<(String, usize), usize>,
|
visited_tests: FxHashMap<(String, usize), usize>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Collector {
|
impl Collector {
|
||||||
|
@ -727,7 +727,7 @@ impl Collector {
|
||||||
position: DUMMY_SP,
|
position: DUMMY_SP,
|
||||||
source_map,
|
source_map,
|
||||||
filename,
|
filename,
|
||||||
visited_tests: HashMap::new(),
|
visited_tests: FxHashMap::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1009,7 +1009,7 @@ impl<'a, 'hir, 'tcx> HirCollector<'a, 'hir, 'tcx> {
|
||||||
self.codes,
|
self.codes,
|
||||||
self.collector.enable_per_target_ignores,
|
self.collector.enable_per_target_ignores,
|
||||||
Some(&crate::html::markdown::ExtraInfo::new(
|
Some(&crate::html::markdown::ExtraInfo::new(
|
||||||
&self.tcx,
|
self.tcx,
|
||||||
hir_id,
|
hir_id,
|
||||||
span_of_attrs(&attrs).unwrap_or(sp),
|
span_of_attrs(&attrs).unwrap_or(sp),
|
||||||
)),
|
)),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use rustc_middle::ty;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_span::edition::Edition;
|
use rustc_span::edition::Edition;
|
||||||
|
|
||||||
use crate::clean;
|
use crate::clean;
|
||||||
|
@ -20,7 +20,7 @@ crate trait FormatRenderer<'tcx>: Clone {
|
||||||
render_info: RenderInfo,
|
render_info: RenderInfo,
|
||||||
edition: Edition,
|
edition: Edition,
|
||||||
cache: &mut Cache,
|
cache: &mut Cache,
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
) -> Result<(Self, clean::Crate), Error>;
|
) -> Result<(Self, clean::Crate), Error>;
|
||||||
|
|
||||||
/// Renders a single non-module item. This means no recursive sub-item rendering is required.
|
/// Renders a single non-module item. This means no recursive sub-item rendering is required.
|
||||||
|
@ -55,7 +55,7 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>(
|
||||||
render_info: RenderInfo,
|
render_info: RenderInfo,
|
||||||
diag: &rustc_errors::Handler,
|
diag: &rustc_errors::Handler,
|
||||||
edition: Edition,
|
edition: Edition,
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let (krate, mut cache) = Cache::from_krate(
|
let (krate, mut cache) = Cache::from_krate(
|
||||||
render_info.clone(),
|
render_info.clone(),
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use std::collections::HashMap;
|
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
|
|
||||||
use crate::externalfiles::ExternalHtml;
|
use crate::externalfiles::ExternalHtml;
|
||||||
use crate::html::escape::Escape;
|
use crate::html::escape::Escape;
|
||||||
use crate::html::format::{Buffer, Print};
|
use crate::html::format::{Buffer, Print};
|
||||||
|
@ -11,7 +12,7 @@ crate struct Layout {
|
||||||
crate logo: String,
|
crate logo: String,
|
||||||
crate favicon: String,
|
crate favicon: String,
|
||||||
crate external_html: ExternalHtml,
|
crate external_html: ExternalHtml,
|
||||||
crate default_settings: HashMap<String, String>,
|
crate default_settings: FxHashMap<String, String>,
|
||||||
crate krate: String,
|
crate krate: String,
|
||||||
/// The given user css file which allow to customize the generated
|
/// The given user css file which allow to customize the generated
|
||||||
/// documentation theme.
|
/// documentation theme.
|
||||||
|
|
|
@ -620,7 +620,7 @@ crate fn find_testable_code<T: doctest::Tester>(
|
||||||
tests: &mut T,
|
tests: &mut T,
|
||||||
error_codes: ErrorCodes,
|
error_codes: ErrorCodes,
|
||||||
enable_per_target_ignores: bool,
|
enable_per_target_ignores: bool,
|
||||||
extra_info: Option<&ExtraInfo<'_, '_>>,
|
extra_info: Option<&ExtraInfo<'_>>,
|
||||||
) {
|
) {
|
||||||
let mut parser = Parser::new(doc).into_offset_iter();
|
let mut parser = Parser::new(doc).into_offset_iter();
|
||||||
let mut prev_offset = 0;
|
let mut prev_offset = 0;
|
||||||
|
@ -681,19 +681,19 @@ crate fn find_testable_code<T: doctest::Tester>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
crate struct ExtraInfo<'a, 'b> {
|
crate struct ExtraInfo<'tcx> {
|
||||||
hir_id: Option<HirId>,
|
hir_id: Option<HirId>,
|
||||||
item_did: Option<DefId>,
|
item_did: Option<DefId>,
|
||||||
sp: Span,
|
sp: Span,
|
||||||
tcx: &'a TyCtxt<'b>,
|
tcx: TyCtxt<'tcx>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, 'b> ExtraInfo<'a, 'b> {
|
impl<'tcx> ExtraInfo<'tcx> {
|
||||||
crate fn new(tcx: &'a TyCtxt<'b>, hir_id: HirId, sp: Span) -> ExtraInfo<'a, 'b> {
|
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 { hir_id: Some(hir_id), item_did: None, sp, tcx }
|
||||||
}
|
}
|
||||||
|
|
||||||
crate fn new_did(tcx: &'a TyCtxt<'b>, did: DefId, sp: Span) -> ExtraInfo<'a, 'b> {
|
crate fn new_did(tcx: TyCtxt<'tcx>, did: DefId, sp: Span) -> ExtraInfo<'tcx> {
|
||||||
ExtraInfo { hir_id: None, item_did: Some(did), sp, tcx }
|
ExtraInfo { hir_id: None, item_did: Some(did), sp, tcx }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -775,7 +775,7 @@ impl LangString {
|
||||||
string: &str,
|
string: &str,
|
||||||
allow_error_code_check: ErrorCodes,
|
allow_error_code_check: ErrorCodes,
|
||||||
enable_per_target_ignores: bool,
|
enable_per_target_ignores: bool,
|
||||||
extra: Option<&ExtraInfo<'_, '_>>,
|
extra: Option<&ExtraInfo<'_>>,
|
||||||
) -> LangString {
|
) -> LangString {
|
||||||
let allow_error_code_check = allow_error_code_check.as_bool();
|
let allow_error_code_check = allow_error_code_check.as_bool();
|
||||||
let mut seen_rust_tags = false;
|
let mut seen_rust_tags = false;
|
||||||
|
@ -1208,7 +1208,7 @@ crate struct RustCodeBlock {
|
||||||
|
|
||||||
/// Returns a range of bytes for each code block in the markdown that is tagged as `rust` or
|
/// Returns a range of bytes for each code block in the markdown that is tagged as `rust` or
|
||||||
/// untagged (and assumed to be rust).
|
/// untagged (and assumed to be rust).
|
||||||
crate fn rust_code_blocks(md: &str, extra_info: &ExtraInfo<'_, '_>) -> Vec<RustCodeBlock> {
|
crate fn rust_code_blocks(md: &str, extra_info: &ExtraInfo<'_>) -> Vec<RustCodeBlock> {
|
||||||
let mut code_blocks = vec![];
|
let mut code_blocks = vec![];
|
||||||
|
|
||||||
if md.is_empty() {
|
if md.is_empty() {
|
||||||
|
|
|
@ -55,7 +55,6 @@ use rustc_hir as hir;
|
||||||
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
||||||
use rustc_hir::Mutability;
|
use rustc_hir::Mutability;
|
||||||
use rustc_middle::middle::stability;
|
use rustc_middle::middle::stability;
|
||||||
use rustc_middle::ty;
|
|
||||||
use rustc_middle::ty::TyCtxt;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_session::Session;
|
use rustc_session::Session;
|
||||||
use rustc_span::edition::Edition;
|
use rustc_span::edition::Edition;
|
||||||
|
@ -390,7 +389,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
|
||||||
_render_info: RenderInfo,
|
_render_info: RenderInfo,
|
||||||
edition: Edition,
|
edition: Edition,
|
||||||
cache: &mut Cache,
|
cache: &mut Cache,
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
) -> Result<(Self, clean::Crate), Error> {
|
) -> Result<(Self, clean::Crate), Error> {
|
||||||
// need to save a copy of the options for rendering the index page
|
// need to save a copy of the options for rendering the index page
|
||||||
let md_opts = options.clone();
|
let md_opts = options.clone();
|
||||||
|
|
|
@ -13,7 +13,7 @@ use std::path::PathBuf;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use rustc_data_structures::fx::FxHashMap;
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
use rustc_middle::ty;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_session::Session;
|
use rustc_session::Session;
|
||||||
use rustc_span::edition::Edition;
|
use rustc_span::edition::Edition;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ use crate::html::render::cache::ExternalLocation;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
crate struct JsonRenderer<'tcx> {
|
crate struct JsonRenderer<'tcx> {
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
/// A mapping of IDs that contains all local items for this crate which gets output as a top
|
/// A mapping of IDs that contains all local items for this crate which gets output as a top
|
||||||
/// level field of the JSON blob.
|
/// level field of the JSON blob.
|
||||||
index: Rc<RefCell<FxHashMap<types::Id, types::Item>>>,
|
index: Rc<RefCell<FxHashMap<types::Id, types::Item>>>,
|
||||||
|
@ -131,7 +131,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
|
||||||
_render_info: RenderInfo,
|
_render_info: RenderInfo,
|
||||||
_edition: Edition,
|
_edition: Edition,
|
||||||
_cache: &mut Cache,
|
_cache: &mut Cache,
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
) -> Result<(Self, clean::Crate), Error> {
|
) -> Result<(Self, clean::Crate), Error> {
|
||||||
debug!("Initializing json renderer");
|
debug!("Initializing json renderer");
|
||||||
Ok((
|
Ok((
|
||||||
|
|
|
@ -65,7 +65,7 @@ use std::process;
|
||||||
use rustc_driver::abort_on_err;
|
use rustc_driver::abort_on_err;
|
||||||
use rustc_errors::ErrorReported;
|
use rustc_errors::ErrorReported;
|
||||||
use rustc_interface::interface;
|
use rustc_interface::interface;
|
||||||
use rustc_middle::ty;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_session::config::{make_crate_type_option, ErrorOutputType, RustcOptGroup};
|
use rustc_session::config::{make_crate_type_option, ErrorOutputType, RustcOptGroup};
|
||||||
use rustc_session::getopts;
|
use rustc_session::getopts;
|
||||||
use rustc_session::{early_error, early_warn};
|
use rustc_session::{early_error, early_warn};
|
||||||
|
@ -471,7 +471,7 @@ fn run_renderer<'tcx, T: formats::FormatRenderer<'tcx>>(
|
||||||
render_info: config::RenderInfo,
|
render_info: config::RenderInfo,
|
||||||
diag: &rustc_errors::Handler,
|
diag: &rustc_errors::Handler,
|
||||||
edition: rustc_span::edition::Edition,
|
edition: rustc_span::edition::Edition,
|
||||||
tcx: ty::TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
) -> MainResult {
|
) -> MainResult {
|
||||||
match formats::run_format::<T>(krate, renderopts, render_info, &diag, edition, tcx) {
|
match formats::run_format::<T>(krate, renderopts, render_info, &diag, edition, tcx) {
|
||||||
Ok(_) => Ok(()),
|
Ok(_) => Ok(()),
|
||||||
|
|
|
@ -108,7 +108,7 @@ impl<'a, 'tcx> DocFolder for SyntaxChecker<'a, 'tcx> {
|
||||||
fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
|
fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
|
||||||
if let Some(dox) = &item.attrs.collapsed_doc_value() {
|
if let Some(dox) = &item.attrs.collapsed_doc_value() {
|
||||||
let sp = span_of_attrs(&item.attrs).unwrap_or(item.source.span());
|
let sp = span_of_attrs(&item.attrs).unwrap_or(item.source.span());
|
||||||
let extra = crate::html::markdown::ExtraInfo::new_did(&self.cx.tcx, item.def_id, sp);
|
let extra = crate::html::markdown::ExtraInfo::new_did(self.cx.tcx, item.def_id, sp);
|
||||||
for code_block in markdown::rust_code_blocks(&dox, &extra) {
|
for code_block in markdown::rust_code_blocks(&dox, &extra) {
|
||||||
self.check_rust_syntax(&item, &dox, code_block);
|
self.check_rust_syntax(&item, &dox, code_block);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ use rustc_hir::def::{
|
||||||
PerNS,
|
PerNS,
|
||||||
};
|
};
|
||||||
use rustc_hir::def_id::{CrateNum, DefId};
|
use rustc_hir::def_id::{CrateNum, DefId};
|
||||||
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_middle::{bug, ty};
|
use rustc_middle::{bug, ty};
|
||||||
use rustc_resolve::ParentScope;
|
use rustc_resolve::ParentScope;
|
||||||
use rustc_session::lint::{
|
use rustc_session::lint::{
|
||||||
|
@ -85,7 +86,7 @@ impl Res {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn name(self, tcx: ty::TyCtxt<'_>) -> String {
|
fn name(self, tcx: TyCtxt<'_>) -> String {
|
||||||
match self {
|
match self {
|
||||||
Res::Def(_, id) => tcx.item_name(id).to_string(),
|
Res::Def(_, id) => tcx.item_name(id).to_string(),
|
||||||
Res::Primitive(prim) => prim.as_str().to_string(),
|
Res::Primitive(prim) => prim.as_str().to_string(),
|
||||||
|
@ -865,12 +866,11 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> {
|
||||||
|
|
||||||
// FIXME(jynelson): this shouldn't go through stringification, rustdoc should just use the DefId directly
|
// FIXME(jynelson): this shouldn't go through stringification, rustdoc should just use the DefId directly
|
||||||
let self_name = self_id.and_then(|self_id| {
|
let self_name = self_id.and_then(|self_id| {
|
||||||
use ty::TyKind;
|
|
||||||
if matches!(self.cx.tcx.def_kind(self_id), DefKind::Impl) {
|
if matches!(self.cx.tcx.def_kind(self_id), DefKind::Impl) {
|
||||||
// using `ty.to_string()` (or any variant) has issues with raw idents
|
// using `ty.to_string()` (or any variant) has issues with raw idents
|
||||||
let ty = self.cx.tcx.type_of(self_id);
|
let ty = self.cx.tcx.type_of(self_id);
|
||||||
let name = match ty.kind() {
|
let name = match ty.kind() {
|
||||||
TyKind::Adt(def, _) => Some(self.cx.tcx.item_name(def.did).to_string()),
|
ty::Adt(def, _) => Some(self.cx.tcx.item_name(def.did).to_string()),
|
||||||
other if other.is_primitive() => Some(ty.to_string()),
|
other if other.is_primitive() => Some(ty.to_string()),
|
||||||
_ => None,
|
_ => None,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue