diff --git a/examples/rustc-driver-example.rs b/examples/rustc-driver-example.rs index fc0a5f469..3e22586d7 100644 --- a/examples/rustc-driver-example.rs +++ b/examples/rustc-driver-example.rs @@ -9,12 +9,11 @@ extern crate rustc_interface; extern crate rustc_session; extern crate rustc_span; -use std::{path, process, str}; +use std::{path, process, str, sync::Arc}; use rustc_errors::registry; -use rustc_hash::{FxHashMap, FxHashSet}; -use rustc_session::config::{self, CheckCfg}; -use rustc_span::source_map; +use rustc_hash::FxHashMap; +use rustc_session::config; fn main() { let out = process::Command::new("rustc") @@ -30,10 +29,10 @@ fn main() { ..config::Options::default() }, // cfg! configuration in addition to the default ones - crate_cfg: FxHashSet::default(), // FxHashSet<(String, Option)> - crate_check_cfg: CheckCfg::default(), // CheckCfg + crate_cfg: Vec::new(), // FxHashSet<(String, Option)> + crate_check_cfg: Vec::new(), // CheckCfg input: config::Input::Str { - name: source_map::FileName::Custom("main.rs".into()), + name: rustc_span::FileName::Custom("main.rs".into()), input: r#" static HELLO: &str = "Hello, world!"; fn main() { @@ -61,10 +60,12 @@ fn main() { // The second parameter is local providers and the third parameter is external providers. override_queries: None, // Option, &mut ty::query::Providers<'_>)> // Registry of diagnostics codes. - registry: registry::Registry::new(&rustc_error_codes::DIAGNOSTICS), + registry: registry::Registry::new(rustc_error_codes::DIAGNOSTICS), make_codegen_backend: None, expanded_args: Vec::new(), ice_file: None, + hash_untracked_state: None, + using_internal_features: Arc::default(), }; rustc_interface::run_compiler(config, |compiler| { compiler.enter(|queries| { diff --git a/examples/rustc-driver-getting-diagnostics.rs b/examples/rustc-driver-getting-diagnostics.rs index 0195224de..6708b4985 100644 --- a/examples/rustc-driver-getting-diagnostics.rs +++ b/examples/rustc-driver-getting-diagnostics.rs @@ -10,27 +10,12 @@ extern crate rustc_session; extern crate rustc_span; use rustc_errors::registry; -use rustc_session::config::{self, CheckCfg}; -use rustc_span::source_map; -use std::io; +use rustc_session::config; use std::path; use std::process; use std::str; use std::sync; -// Buffer diagnostics in a Vec. -#[derive(Clone)] -pub struct DiagnosticSink(sync::Arc>>); - -impl io::Write for DiagnosticSink { - fn write(&mut self, buf: &[u8]) -> io::Result { - self.0.lock().unwrap().write(buf) - } - fn flush(&mut self) -> io::Result<()> { - self.0.lock().unwrap().flush() - } -} - fn main() { let out = process::Command::new("rustc") .arg("--print=sysroot") @@ -53,7 +38,7 @@ fn main() { }, // This program contains a type error. input: config::Input::Str { - name: source_map::FileName::Custom("main.rs".into()), + name: rustc_span::FileName::Custom("main.rs".into()), input: " fn main() { let x: &str = 1; @@ -61,8 +46,8 @@ fn main() { " .into(), }, - crate_cfg: rustc_hash::FxHashSet::default(), - crate_check_cfg: CheckCfg::default(), + crate_cfg: Vec::new(), + crate_check_cfg: Vec::new(), output_dir: None, output_file: None, file_loader: None, @@ -71,10 +56,12 @@ fn main() { parse_sess_created: None, register_lints: None, override_queries: None, - registry: registry::Registry::new(&rustc_error_codes::DIAGNOSTICS), + registry: registry::Registry::new(rustc_error_codes::DIAGNOSTICS), make_codegen_backend: None, expanded_args: Vec::new(), ice_file: None, + hash_untracked_state: None, + using_internal_features: sync::Arc::default(), }; rustc_interface::run_compiler(config, |compiler| { compiler.enter(|queries| { diff --git a/examples/rustc-driver-interacting-with-the-ast.rs b/examples/rustc-driver-interacting-with-the-ast.rs index 3d3827e5d..104a7a7de 100644 --- a/examples/rustc-driver-interacting-with-the-ast.rs +++ b/examples/rustc-driver-interacting-with-the-ast.rs @@ -10,12 +10,11 @@ extern crate rustc_interface; extern crate rustc_session; extern crate rustc_span; -use std::{path, process, str}; +use std::{path, process, str, sync::Arc}; use rustc_ast_pretty::pprust::item_to_string; use rustc_errors::registry; -use rustc_session::config::{self, CheckCfg}; -use rustc_span::source_map; +use rustc_session::config; fn main() { let out = process::Command::new("rustc") @@ -30,7 +29,7 @@ fn main() { ..config::Options::default() }, input: config::Input::Str { - name: source_map::FileName::Custom("main.rs".to_string()), + name: rustc_span::FileName::Custom("main.rs".to_string()), input: r#" fn main() { let message = "Hello, World!"; @@ -39,8 +38,8 @@ fn main() { "# .to_string(), }, - crate_cfg: rustc_hash::FxHashSet::default(), - crate_check_cfg: CheckCfg::default(), + crate_cfg: Vec::new(), + crate_check_cfg: Vec::new(), output_dir: None, output_file: None, file_loader: None, @@ -50,9 +49,11 @@ fn main() { register_lints: None, override_queries: None, make_codegen_backend: None, - registry: registry::Registry::new(&rustc_error_codes::DIAGNOSTICS), + registry: registry::Registry::new(rustc_error_codes::DIAGNOSTICS), expanded_args: Vec::new(), ice_file: None, + hash_untracked_state: None, + using_internal_features: Arc::default(), }; rustc_interface::run_compiler(config, |compiler| { compiler.enter(|queries| { diff --git a/src/rustc-driver-getting-diagnostics.md b/src/rustc-driver-getting-diagnostics.md index 95e3c7cc8..240ebe99b 100644 --- a/src/rustc-driver-getting-diagnostics.md +++ b/src/rustc-driver-getting-diagnostics.md @@ -7,7 +7,7 @@ To get diagnostics from the compiler, configure `rustc_interface::Config` to output diagnostic to a buffer, and run `TyCtxt.analysis`. The following was tested -with `nightly-2023-10-03`: +with `nightly-2024-01-19`: ```rust {{#include ../examples/rustc-driver-getting-diagnostics.rs}} diff --git a/src/rustc-driver-interacting-with-the-ast.md b/src/rustc-driver-interacting-with-the-ast.md index fc119c1ec..1339fdce8 100644 --- a/src/rustc-driver-interacting-with-the-ast.md +++ b/src/rustc-driver-interacting-with-the-ast.md @@ -5,7 +5,7 @@ ## Getting the type of an expression To get the type of an expression, use the `global_ctxt` to get a `TyCtxt`. -The following was tested with `nightly-2023-10-03`: +The following was tested with `nightly-2024-01-19`: ```rust {{#include ../examples/rustc-driver-interacting-with-the-ast.rs}}