Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update examples #1856

Merged
merged 3 commits into from
Jan 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions examples/rustc-driver-example.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -30,10 +29,10 @@ fn main() {
..config::Options::default()
},
// cfg! configuration in addition to the default ones
crate_cfg: FxHashSet::default(), // FxHashSet<(String, Option<String>)>
crate_check_cfg: CheckCfg::default(), // CheckCfg
crate_cfg: Vec::new(), // FxHashSet<(String, Option<String>)>
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() {
Expand Down Expand Up @@ -61,10 +60,12 @@ fn main() {
// The second parameter is local providers and the third parameter is external providers.
override_queries: None, // Option<fn(&Session, &mut ty::query::Providers<'_>, &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| {
Expand Down
27 changes: 7 additions & 20 deletions examples/rustc-driver-getting-diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<u8>.
#[derive(Clone)]
pub struct DiagnosticSink(sync::Arc<sync::Mutex<Vec<u8>>>);

impl io::Write for DiagnosticSink {
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
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")
Expand All @@ -53,16 +38,16 @@ 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;
}
"
.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,
Expand All @@ -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| {
Expand Down
15 changes: 8 additions & 7 deletions examples/rustc-driver-interacting-with-the-ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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!";
Expand All @@ -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,
Expand All @@ -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| {
Expand Down
2 changes: 1 addition & 1 deletion src/rustc-driver-getting-diagnostics.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <!-- date-check: oct 2023 --> `nightly-2023-10-03`:
with <!-- date-check: jan 2024 --> `nightly-2024-01-19`:

```rust
{{#include ../examples/rustc-driver-getting-diagnostics.rs}}
Expand Down
2 changes: 1 addition & 1 deletion src/rustc-driver-interacting-with-the-ast.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <!-- date-check: oct 2023 --> `nightly-2023-10-03`:
The following was tested with <!-- date-check: jan 2024 --> `nightly-2024-01-19`:

```rust
{{#include ../examples/rustc-driver-interacting-with-the-ast.rs}}
Expand Down