set the default edition when pre-parsing a doctest
This commit is contained in:
parent
a19cf18c7d
commit
20a5aa302e
8 changed files with 86 additions and 55 deletions
|
@ -47,6 +47,7 @@ use std::rc::Rc;
|
|||
use errors;
|
||||
use serialize::json::{ToJson, Json, as_json};
|
||||
use syntax::ast;
|
||||
use syntax::edition::Edition;
|
||||
use syntax::ext::base::MacroKind;
|
||||
use syntax::source_map::FileName;
|
||||
use syntax::feature_gate::UnstableFeatures;
|
||||
|
@ -107,6 +108,8 @@ struct Context {
|
|||
/// publicly reused items to redirect to the right location.
|
||||
pub render_redirect_pages: bool,
|
||||
pub codes: ErrorCodes,
|
||||
/// The default edition used to parse doctests.
|
||||
pub edition: Edition,
|
||||
/// The map used to ensure all generated 'id=' attributes are unique.
|
||||
id_map: Rc<RefCell<IdMap>>,
|
||||
pub shared: Arc<SharedContext>,
|
||||
|
@ -513,7 +516,8 @@ pub fn run(mut krate: clean::Crate,
|
|||
options: RenderOptions,
|
||||
passes: FxHashSet<String>,
|
||||
renderinfo: RenderInfo,
|
||||
diag: &errors::Handler) -> Result<(), Error> {
|
||||
diag: &errors::Handler,
|
||||
edition: Edition) -> Result<(), Error> {
|
||||
// need to save a copy of the options for rendering the index page
|
||||
let md_opts = options.clone();
|
||||
let RenderOptions {
|
||||
|
@ -603,6 +607,7 @@ pub fn run(mut krate: clean::Crate,
|
|||
dst,
|
||||
render_redirect_pages: false,
|
||||
codes: ErrorCodes::from(UnstableFeatures::from_environment().is_nightly_build()),
|
||||
edition,
|
||||
id_map: Rc::new(RefCell::new(id_map)),
|
||||
shared: Arc::new(scx),
|
||||
};
|
||||
|
@ -1127,7 +1132,7 @@ themePicker.onblur = handleThemeButtonsBlur;
|
|||
md_opts.output = cx.dst.clone();
|
||||
md_opts.external_html = (*cx.shared).layout.external_html.clone();
|
||||
|
||||
crate::markdown::render(index_page, md_opts, diag);
|
||||
crate::markdown::render(index_page, md_opts, diag, cx.edition);
|
||||
} else {
|
||||
let dst = cx.dst.join("index.html");
|
||||
let mut w = BufWriter::new(try_err!(File::create(&dst), &dst));
|
||||
|
@ -2552,7 +2557,7 @@ fn render_markdown(w: &mut fmt::Formatter<'_>,
|
|||
if is_hidden { " hidden" } else { "" },
|
||||
prefix,
|
||||
Markdown(md_text, &links, RefCell::new(&mut ids),
|
||||
cx.codes))
|
||||
cx.codes, cx.edition))
|
||||
}
|
||||
|
||||
fn document_short(
|
||||
|
@ -2917,7 +2922,7 @@ fn short_stability(item: &clean::Item, cx: &Context) -> Vec<String> {
|
|||
|
||||
if let Some(note) = note {
|
||||
let mut ids = cx.id_map.borrow_mut();
|
||||
let html = MarkdownHtml(¬e, RefCell::new(&mut ids), error_codes);
|
||||
let html = MarkdownHtml(¬e, RefCell::new(&mut ids), error_codes, cx.edition);
|
||||
message.push_str(&format!(": {}", html));
|
||||
}
|
||||
stability.push(format!("<div class='stab deprecated'>{}</div>", message));
|
||||
|
@ -2966,7 +2971,7 @@ fn short_stability(item: &clean::Item, cx: &Context) -> Vec<String> {
|
|||
message = format!(
|
||||
"<details><summary>{}</summary>{}</details>",
|
||||
message,
|
||||
MarkdownHtml(&unstable_reason, RefCell::new(&mut ids), error_codes)
|
||||
MarkdownHtml(&unstable_reason, RefCell::new(&mut ids), error_codes, cx.edition)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -4179,7 +4184,8 @@ fn render_impl(w: &mut fmt::Formatter<'_>, cx: &Context, i: &Impl, link: AssocIt
|
|||
if let Some(ref dox) = cx.shared.maybe_collapsed_doc_value(&i.impl_item) {
|
||||
let mut ids = cx.id_map.borrow_mut();
|
||||
write!(w, "<div class='docblock'>{}</div>",
|
||||
Markdown(&*dox, &i.impl_item.links(), RefCell::new(&mut ids), cx.codes))?;
|
||||
Markdown(&*dox, &i.impl_item.links(), RefCell::new(&mut ids),
|
||||
cx.codes, cx.edition))?;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue