Skip to content

Commit

Permalink
Update examples (#1856)
Browse files Browse the repository at this point in the history
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
  • Loading branch information
ShoyuVanilla and JohnTitor committed Jan 21, 2024
1 parent 4b5116a commit c2717f6
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 37 deletions.
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

0 comments on commit c2717f6

Please sign in to comment.