about summary refs log tree commit diff
path: root/compiler/rustc_mir/src/dataflow
diff options
context:
space:
mode:
authorTyler Mandry <tmandry@gmail.com>2020-09-09 21:02:35 -0700
committerGitHub <noreply@github.com>2020-09-09 21:02:35 -0700
commitba6e2b3a31c3f63db69880b8d74eae3faf73947d (patch)
tree6370e3146b4c3a47804c99969a498eb69a00d504 /compiler/rustc_mir/src/dataflow
parentd013e60ad479e086aae044a2e613510976bcb261 (diff)
parentf7aee330c70ef787d2224adb49804343978dd145 (diff)
downloadrust-ba6e2b3a31c3f63db69880b8d74eae3faf73947d.tar.gz
rust-ba6e2b3a31c3f63db69880b8d74eae3faf73947d.zip
Rollup merge of #76500 - richkadel:mir-graphviz-dark, r=tmandry
Add -Zgraphviz_dark_mode and monospace font fix

Many developers use a dark theme with editors and IDEs, but this
typically doesn't extend to graphviz output.

When I bring up a MIR graphviz document, the white background is
strikingly bright. This new option changes the colors used for graphviz
output to work better in dark-themed UIs.

<img width="1305" alt="Screen Shot 2020-09-09 at 3 00 31 PM" src="https://user-images.githubusercontent.com/3827298/92659478-4b9bff00-f2ad-11ea-8894-b40d3a873cb9.png">

Also fixed the monospace font for common graphviz renders (e.g., VS Code extensions), as described in https://github.com/rust-lang/rust/pull/76500#issuecomment-689837948

**Before:**
<img width="943" alt="Screen Shot 2020-09-09 at 2 48 44 PM" src="https://user-images.githubusercontent.com/3827298/92658939-47231680-f2ac-11ea-97ac-96727e4dd622.png">

**Now with fix:**
<img width="943" alt="Screen Shot 2020-09-09 at 2 49 02 PM" src="https://user-images.githubusercontent.com/3827298/92658959-51451500-f2ac-11ea-9aae-de982d466d6a.png">
Diffstat (limited to 'compiler/rustc_mir/src/dataflow')
-rw-r--r--compiler/rustc_mir/src/dataflow/framework/engine.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_mir/src/dataflow/framework/engine.rs b/compiler/rustc_mir/src/dataflow/framework/engine.rs
index d3ad42f6bbc..0b5b437d186 100644
--- a/compiler/rustc_mir/src/dataflow/framework/engine.rs
+++ b/compiler/rustc_mir/src/dataflow/framework/engine.rs
@@ -306,7 +306,11 @@ where
     let mut buf = Vec::new();
 
     let graphviz = graphviz::Formatter::new(body, def_id, results, style);
-    dot::render_opts(&graphviz, &mut buf, &[dot::RenderOption::Monospace])?;
+    let mut render_opts = vec![dot::RenderOption::Monospace];
+    if tcx.sess.opts.debugging_opts.graphviz_dark_mode {
+        render_opts.push(dot::RenderOption::DarkTheme);
+    }
+    dot::render_opts(&graphviz, &mut buf, &render_opts)?;
 
     if let Some(parent) = path.parent() {
         fs::create_dir_all(parent)?;