about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2020-07-13 15:34:38 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2020-11-17 10:32:48 +0100
commit96a6a5fec12a71b28db6cb8a22202e18a6ae9cf4 (patch)
tree045375c4822d9bb8da9a26a139dff5b8f97a7519
parent54508a26eb0595eb8417a4643f2ee572d6ca33d3 (diff)
downloadrust-96a6a5fec12a71b28db6cb8a22202e18a6ae9cf4.tar.gz
rust-96a6a5fec12a71b28db6cb8a22202e18a6ae9cf4.zip
Add color in rustdoc --test output
-rw-r--r--src/librustdoc/doctest.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs
index c79b2395d23..b49bbf3f801 100644
--- a/src/librustdoc/doctest.rs
+++ b/src/librustdoc/doctest.rs
@@ -1,13 +1,14 @@
 use rustc_ast as ast;
 use rustc_data_structures::sync::Lrc;
-use rustc_errors::ErrorReported;
+use rustc_errors::{ColorConfig, ErrorReported};
+use rustc_feature::UnstableFeatures;
 use rustc_hir as hir;
 use rustc_hir::intravisit;
 use rustc_hir::{HirId, CRATE_HIR_ID};
 use rustc_interface::interface;
 use rustc_middle::hir::map::Map;
 use rustc_middle::ty::TyCtxt;
-use rustc_session::config::{self, CrateType};
+use rustc_session::config::{self, CrateType, ErrorOutputType};
 use rustc_session::{lint, DiagnosticOutput, Session};
 use rustc_span::edition::Edition;
 use rustc_span::source_map::SourceMap;
@@ -293,6 +294,18 @@ fn run_test(
             path.to_str().expect("target path must be valid unicode").to_string()
         }
     });
+    match options.error_format {
+        ErrorOutputType::HumanReadable(kind) => {
+            let (_, color_config) = kind.unzip();
+            match color_config {
+                ColorConfig::Never => {}
+                _ => {
+                    compiler.arg("--color").arg("always");
+                }
+            }
+        }
+        _ => {}
+    }
 
     compiler.arg("-");
     compiler.stdin(Stdio::piped());