about summary refs log tree commit diff
diff options
context:
space:
mode:
authormejrs <>2022-10-24 20:52:51 +0200
committermejrs <>2022-10-24 20:52:51 +0200
commit854b3166a05916f01b6a7cb9c09fc7c8d26697ad (patch)
tree159dd54e8e4f48c6ee31908766bd54c84a19ac97
parent406e1dc8ebdeb509515c0c8be7cfe015c5eced30 (diff)
downloadrust-854b3166a05916f01b6a7cb9c09fc7c8d26697ad.tar.gz
rust-854b3166a05916f01b6a7cb9c09fc7c8d26697ad.zip
Address some comments
-rw-r--r--compiler/rustc_errors/src/emitter.rs4
-rw-r--r--compiler/rustc_interface/src/tests.rs1
-rw-r--r--compiler/rustc_session/src/options.rs4
-rw-r--r--src/librustdoc/core.rs4
-rw-r--r--src/test/rustdoc-ui/track-diagnostics.rs6
-rw-r--r--src/test/rustdoc-ui/track-diagnostics.stderr10
-rw-r--r--src/test/rustdoc-ui/z-help.stdout1
-rw-r--r--src/tools/clippy/tests/ui/track-diagnostics.rs8
-rw-r--r--src/tools/clippy/tests/ui/track-diagnostics.stderr10
9 files changed, 42 insertions, 6 deletions
diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs
index b9b9a59e354..b7b8fe3f25a 100644
--- a/compiler/rustc_errors/src/emitter.rs
+++ b/compiler/rustc_errors/src/emitter.rs
@@ -559,7 +559,7 @@ impl Emitter for EmitterWriter {
             &primary_span,
             &children,
             &suggestions,
-            Some(&diag.emitted_at),
+            self.track_diagnostics.then_some(&diag.emitted_at),
         );
     }
 
@@ -1661,7 +1661,7 @@ impl EmitterWriter {
             }
         }
 
-        if self.track_diagnostics && let Some(tracked) = emitted_at {
+        if let Some(tracked) = emitted_at {
             let track = format!("-Ztrack-diagnostics: created at {tracked}");
             let len = buffer.num_lines();
             buffer.append(len, &track, Style::NoStyle);
diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
index da3102ba7b0..0f7220f9f7a 100644
--- a/compiler/rustc_interface/src/tests.rs
+++ b/compiler/rustc_interface/src/tests.rs
@@ -689,6 +689,7 @@ fn test_unstable_options_tracking_hash() {
     untracked!(time_llvm_passes, true);
     untracked!(time_passes, true);
     untracked!(trace_macros, true);
+    untracked!(track_diagnostics, false);
     untracked!(trim_diagnostic_paths, false);
     untracked!(ui_testing, true);
     untracked!(unpretty, Some("expanded".to_string()));
diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs
index af290931850..5327dea8804 100644
--- a/compiler/rustc_session/src/options.rs
+++ b/compiler/rustc_session/src/options.rs
@@ -1585,8 +1585,8 @@ options! {
         "choose the TLS model to use (`rustc --print tls-models` for details)"),
     trace_macros: bool = (false, parse_bool, [UNTRACKED],
         "for every macro invocation, print its name and arguments (default: no)"),
-    track_diagnostics: bool = (false, parse_bool, [TRACKED],
-        "Tracks where in rustc a diagnostic was emitted"),
+    track_diagnostics: bool = (false, parse_bool, [UNTRACKED],
+        "tracks where in rustc a diagnostic was emitted"),
     // Diagnostics are considered side-effects of a query (see `QuerySideEffects`) and are saved
     // alongside query results and changes to translation options can affect diagnostics - so
     // translation options should be tracked.
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 2a61c2451b6..37d934a540b 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -172,7 +172,7 @@ pub(crate) fn new_handler(
                     unstable_opts.teach,
                     diagnostic_width,
                     false,
-                    false,
+                    unstable_opts.track_diagnostics,
                 )
                 .ui_testing(unstable_opts.ui_testing),
             )
@@ -191,7 +191,7 @@ pub(crate) fn new_handler(
                     json_rendered,
                     diagnostic_width,
                     false,
-                    false,
+                    unstable_opts.track_diagnostics,
                 )
                 .ui_testing(unstable_opts.ui_testing),
             )
diff --git a/src/test/rustdoc-ui/track-diagnostics.rs b/src/test/rustdoc-ui/track-diagnostics.rs
new file mode 100644
index 00000000000..fc5343a982e
--- /dev/null
+++ b/src/test/rustdoc-ui/track-diagnostics.rs
@@ -0,0 +1,6 @@
+// compile-flags: -Z track-diagnostics
+// error-pattern: created at
+
+struct A;
+struct B;
+const S: A = B;
diff --git a/src/test/rustdoc-ui/track-diagnostics.stderr b/src/test/rustdoc-ui/track-diagnostics.stderr
new file mode 100644
index 00000000000..76453cfe220
--- /dev/null
+++ b/src/test/rustdoc-ui/track-diagnostics.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+  --> $DIR/track-diagnostics.rs:6:14
+   |
+LL | const S: A = B;
+   |              ^ expected struct `A`, found struct `B`
+-Ztrack-diagnostics: created at compiler/rustc_infer/src/infer/error_reporting/mod.rs:2275:31
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/rustdoc-ui/z-help.stdout b/src/test/rustdoc-ui/z-help.stdout
index dbf3a8f00ee..07c8793c08b 100644
--- a/src/test/rustdoc-ui/z-help.stdout
+++ b/src/test/rustdoc-ui/z-help.stdout
@@ -170,6 +170,7 @@
     -Z                             time-passes=val -- measure time of each rustc pass (default: no)
     -Z                               tls-model=val -- choose the TLS model to use (`rustc --print tls-models` for details)
     -Z                            trace-macros=val -- for every macro invocation, print its name and arguments (default: no)
+    -Z                       track-diagnostics=val -- Tracks where in rustc a diagnostic was emitted
     -Z                translate-additional-ftl=val -- additional fluent translation to preferentially use (for testing translation)
     -Z        translate-directionality-markers=val -- emit directionality isolation markers in translated diagnostics
     -Z                          translate-lang=val -- language identifier for diagnostic output
diff --git a/src/tools/clippy/tests/ui/track-diagnostics.rs b/src/tools/clippy/tests/ui/track-diagnostics.rs
new file mode 100644
index 00000000000..8c96f46d57a
--- /dev/null
+++ b/src/tools/clippy/tests/ui/track-diagnostics.rs
@@ -0,0 +1,8 @@
+// compile-flags: -Z track-diagnostics
+// error-pattern: created at
+
+struct A;
+struct B;
+const S: A = B;
+
+fn main() {}
diff --git a/src/tools/clippy/tests/ui/track-diagnostics.stderr b/src/tools/clippy/tests/ui/track-diagnostics.stderr
new file mode 100644
index 00000000000..76453cfe220
--- /dev/null
+++ b/src/tools/clippy/tests/ui/track-diagnostics.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+  --> $DIR/track-diagnostics.rs:6:14
+   |
+LL | const S: A = B;
+   |              ^ expected struct `A`, found struct `B`
+-Ztrack-diagnostics: created at compiler/rustc_infer/src/infer/error_reporting/mod.rs:2275:31
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.