about summary refs log tree commit diff
path: root/src/doc/rustc-dev-guide/examples
diff options
context:
space:
mode:
authorVetle Rasmussen <vetle.rasmussen@muybridge.com>2024-09-18 07:06:24 +0200
committernora <48135649+Noratrieb@users.noreply.github.com>2024-09-24 19:53:51 +0200
commit5e73e70eaa0721446a55a6633f764157e857bdeb (patch)
tree2beb8aa0e3e4be3c54d12e419a78dd4ad742a6e7 /src/doc/rustc-dev-guide/examples
parent9080dfe6ccaf358bb4ae0680cc4fdab0f67eeb9b (diff)
downloadrust-5e73e70eaa0721446a55a6633f764157e857bdeb.tar.gz
rust-5e73e70eaa0721446a55a6633f764157e857bdeb.zip
Fix getting diagnostics example
Diffstat (limited to 'src/doc/rustc-dev-guide/examples')
-rw-r--r--src/doc/rustc-dev-guide/examples/rustc-driver-getting-diagnostics.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/doc/rustc-dev-guide/examples/rustc-driver-getting-diagnostics.rs b/src/doc/rustc-dev-guide/examples/rustc-driver-getting-diagnostics.rs
index f9fe7f5f3ff..7b624032310 100644
--- a/src/doc/rustc-dev-guide/examples/rustc-driver-getting-diagnostics.rs
+++ b/src/doc/rustc-dev-guide/examples/rustc-driver-getting-diagnostics.rs
@@ -77,10 +77,10 @@ fn main() {
         locale_resources: rustc_driver::DEFAULT_LOCALE_RESOURCES,
         lint_caps: rustc_hash::FxHashMap::default(),
         psess_created: Some(Box::new(|parse_sess| {
-            parse_sess.dcx = DiagCtxt::new(Box::new(DebugEmitter {
+            parse_sess.set_dcx(DiagCtxt::new(Box::new(DebugEmitter {
                 source_map: parse_sess.clone_source_map(),
                 diagnostics,
-            }))
+            })));
         })),
         register_lints: None,
         override_queries: None,
@@ -98,6 +98,9 @@ fn main() {
                 let _ = tcx.analysis(());
             });
         });
+        // If the compiler has encountered errors when this closure returns, it will abort (!) the program.
+        // We avoid this by resetting the error count before returning
+        compiler.sess.dcx().reset_err_count();
     });
     // Read buffered diagnostics.
     buffer.lock().unwrap().iter().for_each(|diagnostic| {