Skip to content

Commit 68b1ac9

Browse files
committed
Reduce righward drift.
1 parent 9d5f721 commit 68b1ac9

File tree

2 files changed

+160
-163
lines changed

2 files changed

+160
-163
lines changed

src/librustdoc/core.rs

+127-129
Original file line numberDiff line numberDiff line change
@@ -343,153 +343,151 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
343343
registry: rustc_driver::diagnostics_registry(),
344344
};
345345

346-
interface::run_compiler_in_existing_thread_pool(config, |compiler| {
347-
compiler.enter(|queries| {
348-
let sess = compiler.session();
349-
350-
// We need to hold on to the complete resolver, so we cause everything to be
351-
// cloned for the analysis passes to use. Suboptimal, but necessary in the
352-
// current architecture.
353-
let resolver = {
354-
let parts = abort_on_err(queries.expansion(), sess).peek();
355-
let resolver = parts.1.borrow();
356-
357-
// Before we actually clone it, let's force all the extern'd crates to
358-
// actually be loaded, just in case they're only referred to inside
359-
// intra-doc-links
360-
resolver.borrow_mut().access(|resolver| {
361-
for extern_name in &extern_names {
362-
resolver.resolve_str_path_error(
363-
DUMMY_SP, extern_name, TypeNS, CRATE_NODE_ID
364-
).unwrap_or_else(
365-
|()| panic!("Unable to resolve external crate {}", extern_name)
366-
);
367-
}
368-
});
346+
interface::run_compiler_in_existing_thread_pool(config, |compiler| { compiler.enter(|queries| {
347+
let sess = compiler.session();
348+
349+
// We need to hold on to the complete resolver, so we cause everything to be
350+
// cloned for the analysis passes to use. Suboptimal, but necessary in the
351+
// current architecture.
352+
let resolver = {
353+
let parts = abort_on_err(queries.expansion(), sess).peek();
354+
let resolver = parts.1.borrow();
355+
356+
// Before we actually clone it, let's force all the extern'd crates to
357+
// actually be loaded, just in case they're only referred to inside
358+
// intra-doc-links
359+
resolver.borrow_mut().access(|resolver| {
360+
for extern_name in &extern_names {
361+
resolver.resolve_str_path_error(
362+
DUMMY_SP, extern_name, TypeNS, CRATE_NODE_ID
363+
).unwrap_or_else(
364+
|()| panic!("Unable to resolve external crate {}", extern_name)
365+
);
366+
}
367+
});
368+
369+
// Now we're good to clone the resolver because everything should be loaded
370+
resolver.clone()
371+
};
372+
373+
if sess.has_errors() {
374+
sess.fatal("Compilation failed, aborting rustdoc");
375+
}
376+
377+
let mut global_ctxt = abort_on_err(queries.global_ctxt(), sess).take();
369378

370-
// Now we're good to clone the resolver because everything should be loaded
371-
resolver.clone()
379+
global_ctxt.enter(|tcx| {
380+
tcx.analysis(LOCAL_CRATE).ok();
381+
382+
// Abort if there were any errors so far
383+
sess.abort_if_errors();
384+
385+
let access_levels = tcx.privacy_access_levels(LOCAL_CRATE);
386+
// Convert from a HirId set to a DefId set since we don't always have easy access
387+
// to the map from defid -> hirid
388+
let access_levels = AccessLevels {
389+
map: access_levels.map.iter()
390+
.map(|(&k, &v)| (tcx.hir().local_def_id(k), v))
391+
.collect()
372392
};
373393

374-
if sess.has_errors() {
375-
sess.fatal("Compilation failed, aborting rustdoc");
376-
}
394+
let mut renderinfo = RenderInfo::default();
395+
renderinfo.access_levels = access_levels;
396+
397+
let mut ctxt = DocContext {
398+
tcx,
399+
resolver,
400+
external_traits: Default::default(),
401+
active_extern_traits: Default::default(),
402+
renderinfo: RefCell::new(renderinfo),
403+
ty_substs: Default::default(),
404+
lt_substs: Default::default(),
405+
ct_substs: Default::default(),
406+
impl_trait_bounds: Default::default(),
407+
fake_def_ids: Default::default(),
408+
all_fake_def_ids: Default::default(),
409+
generated_synthetics: Default::default(),
410+
auto_traits: tcx.all_traits(LOCAL_CRATE).iter().cloned().filter(|trait_def_id| {
411+
tcx.trait_is_auto(*trait_def_id)
412+
}).collect(),
413+
};
414+
debug!("crate: {:?}", tcx.hir().krate());
377415

378-
let mut global_ctxt = abort_on_err(queries.global_ctxt(), sess).take();
379-
380-
global_ctxt.enter(|tcx| {
381-
tcx.analysis(LOCAL_CRATE).ok();
382-
383-
// Abort if there were any errors so far
384-
sess.abort_if_errors();
385-
386-
let access_levels = tcx.privacy_access_levels(LOCAL_CRATE);
387-
// Convert from a HirId set to a DefId set since we don't always have easy access
388-
// to the map from defid -> hirid
389-
let access_levels = AccessLevels {
390-
map: access_levels.map.iter()
391-
.map(|(&k, &v)| (tcx.hir().local_def_id(k), v))
392-
.collect()
393-
};
394-
395-
let mut renderinfo = RenderInfo::default();
396-
renderinfo.access_levels = access_levels;
397-
398-
let mut ctxt = DocContext {
399-
tcx,
400-
resolver,
401-
external_traits: Default::default(),
402-
active_extern_traits: Default::default(),
403-
renderinfo: RefCell::new(renderinfo),
404-
ty_substs: Default::default(),
405-
lt_substs: Default::default(),
406-
ct_substs: Default::default(),
407-
impl_trait_bounds: Default::default(),
408-
fake_def_ids: Default::default(),
409-
all_fake_def_ids: Default::default(),
410-
generated_synthetics: Default::default(),
411-
auto_traits: tcx.all_traits(LOCAL_CRATE).iter().cloned().filter(|trait_def_id| {
412-
tcx.trait_is_auto(*trait_def_id)
413-
}).collect(),
414-
};
415-
debug!("crate: {:?}", tcx.hir().krate());
416-
417-
let mut krate = clean::krate(&mut ctxt);
418-
419-
fn report_deprecated_attr(name: &str, diag: &errors::Handler) {
420-
let mut msg = diag.struct_warn(&format!("the `#![doc({})]` attribute is \
421-
considered deprecated", name));
422-
msg.warn("please see https://github.com/rust-lang/rust/issues/44136");
423-
424-
if name == "no_default_passes" {
425-
msg.help("you may want to use `#![doc(document_private_items)]`");
426-
}
416+
let mut krate = clean::krate(&mut ctxt);
417+
418+
fn report_deprecated_attr(name: &str, diag: &errors::Handler) {
419+
let mut msg = diag.struct_warn(&format!("the `#![doc({})]` attribute is \
420+
considered deprecated", name));
421+
msg.warn("please see https://github.com/rust-lang/rust/issues/44136");
427422

428-
msg.emit();
423+
if name == "no_default_passes" {
424+
msg.help("you may want to use `#![doc(document_private_items)]`");
429425
}
430426

431-
// Process all of the crate attributes, extracting plugin metadata along
432-
// with the passes which we are supposed to run.
433-
for attr in krate.module.as_ref().unwrap().attrs.lists(sym::doc) {
434-
let diag = ctxt.sess().diagnostic();
435-
436-
let name = attr.name_or_empty();
437-
if attr.is_word() {
438-
if name == sym::no_default_passes {
439-
report_deprecated_attr("no_default_passes", diag);
440-
if default_passes == passes::DefaultPassOption::Default {
441-
default_passes = passes::DefaultPassOption::None;
442-
}
443-
}
444-
} else if let Some(value) = attr.value_str() {
445-
let sink = match name {
446-
sym::passes => {
447-
report_deprecated_attr("passes = \"...\"", diag);
448-
&mut manual_passes
449-
},
450-
sym::plugins => {
451-
report_deprecated_attr("plugins = \"...\"", diag);
452-
eprintln!("WARNING: `#![doc(plugins = \"...\")]` \
453-
no longer functions; see CVE-2018-1000622");
454-
continue
455-
},
456-
_ => continue,
457-
};
458-
for name in value.as_str().split_whitespace() {
459-
sink.push(name.to_string());
460-
}
461-
}
427+
msg.emit();
428+
}
429+
430+
// Process all of the crate attributes, extracting plugin metadata along
431+
// with the passes which we are supposed to run.
432+
for attr in krate.module.as_ref().unwrap().attrs.lists(sym::doc) {
433+
let diag = ctxt.sess().diagnostic();
462434

463-
if attr.is_word() && name == sym::document_private_items {
435+
let name = attr.name_or_empty();
436+
if attr.is_word() {
437+
if name == sym::no_default_passes {
438+
report_deprecated_attr("no_default_passes", diag);
464439
if default_passes == passes::DefaultPassOption::Default {
465-
default_passes = passes::DefaultPassOption::Private;
440+
default_passes = passes::DefaultPassOption::None;
466441
}
467442
}
443+
} else if let Some(value) = attr.value_str() {
444+
let sink = match name {
445+
sym::passes => {
446+
report_deprecated_attr("passes = \"...\"", diag);
447+
&mut manual_passes
448+
},
449+
sym::plugins => {
450+
report_deprecated_attr("plugins = \"...\"", diag);
451+
eprintln!("WARNING: `#![doc(plugins = \"...\")]` \
452+
no longer functions; see CVE-2018-1000622");
453+
continue
454+
},
455+
_ => continue,
456+
};
457+
for name in value.as_str().split_whitespace() {
458+
sink.push(name.to_string());
459+
}
468460
}
469461

470-
let passes = passes::defaults(default_passes).iter().chain(manual_passes.into_iter()
471-
.flat_map(|name| {
472-
if let Some(pass) = passes::find_pass(&name) {
473-
Some(pass)
474-
} else {
475-
error!("unknown pass {}, skipping", name);
476-
None
477-
}
478-
}));
462+
if attr.is_word() && name == sym::document_private_items {
463+
if default_passes == passes::DefaultPassOption::Default {
464+
default_passes = passes::DefaultPassOption::Private;
465+
}
466+
}
467+
}
468+
469+
let passes = passes::defaults(default_passes).iter().chain(manual_passes.into_iter()
470+
.flat_map(|name| {
471+
if let Some(pass) = passes::find_pass(&name) {
472+
Some(pass)
473+
} else {
474+
error!("unknown pass {}, skipping", name);
475+
None
476+
}
477+
}));
479478

480-
info!("Executing passes");
479+
info!("Executing passes");
481480

482-
for pass in passes {
483-
debug!("running pass {}", pass.name);
484-
krate = (pass.pass)(krate, &ctxt);
485-
}
481+
for pass in passes {
482+
debug!("running pass {}", pass.name);
483+
krate = (pass.pass)(krate, &ctxt);
484+
}
486485

487-
ctxt.sess().abort_if_errors();
486+
ctxt.sess().abort_if_errors();
488487

489-
(krate, ctxt.renderinfo.into_inner(), render_options)
490-
})
488+
(krate, ctxt.renderinfo.into_inner(), render_options)
491489
})
492-
})
490+
}) })
493491
}
494492

495493
/// `DefId` or parameter index (`ty::ParamTy.index`) of a synthetic type parameter

src/librustdoc/test.rs

+33-34
Original file line numberDiff line numberDiff line change
@@ -85,42 +85,41 @@ pub fn run(options: Options) -> i32 {
8585
let mut test_args = options.test_args.clone();
8686
let display_warnings = options.display_warnings;
8787

88-
let tests = interface::run_compiler(config, |compiler| -> Result<_, ErrorReported> {
89-
compiler.enter(|queries| {
90-
let lower_to_hir = queries.lower_to_hir()?;
91-
92-
let mut opts = scrape_test_config(lower_to_hir.peek().0.borrow().krate());
93-
opts.display_warnings |= options.display_warnings;
94-
let enable_per_target_ignores = options.enable_per_target_ignores;
95-
let mut collector = Collector::new(
96-
queries.crate_name()?.peek().to_string(),
97-
options,
98-
false,
99-
opts,
100-
Some(compiler.source_map().clone()),
101-
None,
102-
enable_per_target_ignores,
103-
);
104-
105-
let mut global_ctxt = queries.global_ctxt()?.take();
106-
107-
global_ctxt.enter(|tcx| {
108-
let krate = tcx.hir().krate();
109-
let mut hir_collector = HirCollector {
110-
sess: compiler.session(),
111-
collector: &mut collector,
112-
map: tcx.hir(),
113-
codes: ErrorCodes::from(compiler.session().opts
114-
.unstable_features.is_nightly_build()),
115-
};
116-
hir_collector.visit_testable("".to_string(), &krate.attrs, |this| {
117-
intravisit::walk_crate(this, krate);
118-
});
88+
let tests = interface::run_compiler(config, |compiler| { compiler.enter(|queries| {
89+
let lower_to_hir = queries.lower_to_hir()?;
90+
91+
let mut opts = scrape_test_config(lower_to_hir.peek().0.borrow().krate());
92+
opts.display_warnings |= options.display_warnings;
93+
let enable_per_target_ignores = options.enable_per_target_ignores;
94+
let mut collector = Collector::new(
95+
queries.crate_name()?.peek().to_string(),
96+
options,
97+
false,
98+
opts,
99+
Some(compiler.source_map().clone()),
100+
None,
101+
enable_per_target_ignores,
102+
);
103+
104+
let mut global_ctxt = queries.global_ctxt()?.take();
105+
106+
global_ctxt.enter(|tcx| {
107+
let krate = tcx.hir().krate();
108+
let mut hir_collector = HirCollector {
109+
sess: compiler.session(),
110+
collector: &mut collector,
111+
map: tcx.hir(),
112+
codes: ErrorCodes::from(compiler.session().opts
113+
.unstable_features.is_nightly_build()),
114+
};
115+
hir_collector.visit_testable("".to_string(), &krate.attrs, |this| {
116+
intravisit::walk_crate(this, krate);
119117
});
118+
});
120119

121-
Ok(collector.tests)
122-
})
123-
}).expect("compiler aborted in rustdoc!");
120+
let ret : Result<_, ErrorReported> = Ok(collector.tests);
121+
ret
122+
}) }).expect("compiler aborted in rustdoc!");
124123

125124
test_args.insert(0, "rustdoctest".to_string());
126125

0 commit comments

Comments
 (0)