Add environment variable tracking in places where it was convenient
This won't work with Cargo's change tracking, but it should work with incremental.
This commit is contained in:
parent
17db054141
commit
632ce38c9a
2 changed files with 7 additions and 6 deletions
|
@ -1,9 +1,9 @@
|
||||||
//! The entry point of the NLL borrow checker.
|
//! The entry point of the NLL borrow checker.
|
||||||
|
|
||||||
|
use std::io;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::{env, io};
|
|
||||||
|
|
||||||
use polonius_engine::{Algorithm, Output};
|
use polonius_engine::{Algorithm, Output};
|
||||||
use rustc_index::IndexSlice;
|
use rustc_index::IndexSlice;
|
||||||
|
@ -162,9 +162,8 @@ pub(crate) fn compute_regions<'a, 'tcx>(
|
||||||
}
|
}
|
||||||
|
|
||||||
if polonius_output {
|
if polonius_output {
|
||||||
let algorithm =
|
let algorithm = infcx.tcx.env_var("POLONIUS_ALGORITHM").unwrap_or("Hybrid");
|
||||||
env::var("POLONIUS_ALGORITHM").unwrap_or_else(|_| String::from("Hybrid"));
|
let algorithm = Algorithm::from_str(algorithm).unwrap();
|
||||||
let algorithm = Algorithm::from_str(&algorithm).unwrap();
|
|
||||||
debug!("compute_regions: using polonius algorithm {:?}", algorithm);
|
debug!("compute_regions: using polonius algorithm {:?}", algorithm);
|
||||||
let _prof_timer = infcx.tcx.prof.generic_activity("polonius_analysis");
|
let _prof_timer = infcx.tcx.prof.generic_activity("polonius_analysis");
|
||||||
Some(Box::new(Output::compute(polonius_facts, algorithm, false)))
|
Some(Box::new(Output::compute(polonius_facts, algorithm, false)))
|
||||||
|
|
|
@ -104,8 +104,10 @@ impl<'tcx> LateLintPass<'tcx> for NonLocalDefinitions {
|
||||||
// determining if we are in a doctest context can't currently be determined
|
// determining if we are in a doctest context can't currently be determined
|
||||||
// by the code itself (there are no specific attributes), but fortunately rustdoc
|
// by the code itself (there are no specific attributes), but fortunately rustdoc
|
||||||
// sets a perma-unstable env var for libtest so we just reuse that for now
|
// sets a perma-unstable env var for libtest so we just reuse that for now
|
||||||
let is_at_toplevel_doctest =
|
let is_at_toplevel_doctest = || {
|
||||||
|| self.body_depth == 2 && std::env::var("UNSTABLE_RUSTDOC_TEST_PATH").is_ok();
|
self.body_depth == 2
|
||||||
|
&& cx.tcx.env_var_os("UNSTABLE_RUSTDOC_TEST_PATH".as_ref()).is_some()
|
||||||
|
};
|
||||||
|
|
||||||
match item.kind {
|
match item.kind {
|
||||||
ItemKind::Impl(impl_) => {
|
ItemKind::Impl(impl_) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue