diff options
| -rw-r--r-- | src/tools/compiletest/src/common.rs | 3 | ||||
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index b2ce5ce52f7..951a72fec68 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -99,18 +99,21 @@ impl fmt::Display for Mode { #[derive(Clone, PartialEq)] pub enum CompareMode { Nll, + Polonius, } impl CompareMode { pub(crate) fn to_str(&self) -> &'static str { match *self { CompareMode::Nll => "nll", + CompareMode::Polonius => "polonius", } } pub fn parse(s: String) -> CompareMode { match s.as_str() { "nll" => CompareMode::Nll, + "polonius" => CompareMode::Polonius, x => panic!("unknown --compare-mode option: {}", x), } } diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 9ff80cc1d3c..f1e0c2bea0e 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -1729,6 +1729,9 @@ impl<'test> TestCx<'test> { Some(CompareMode::Nll) => { rustc.args(&["-Zborrowck=mir", "-Ztwo-phase-borrows"]); } + Some(CompareMode::Polonius) => { + rustc.args(&["-Zpolonius", "-Zborrowck=mir", "-Ztwo-phase-borrows"]); + } None => {} } @@ -2898,8 +2901,14 @@ impl<'test> TestCx<'test> { &self.config.compare_mode, kind, ); - if !path.exists() && self.config.compare_mode.is_some() { - // fallback! + + if !path.exists() { + if let Some(CompareMode::Polonius) = self.config.compare_mode { + path = expected_output_path(&self.testpaths, self.revision, &Some(CompareMode::Nll), kind); + } + } + + if !path.exists() { path = expected_output_path(&self.testpaths, self.revision, &None, kind); } |
