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
Changes from 1 commit
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
Next Next commit
update examples
ShoyuVanilla committed Jan 21, 2024
commit 01de30631748c5dad4c586fbb588b43ec16c50b9
17 changes: 9 additions & 8 deletions examples/rustc-driver-example.rs
Original file line number Diff line number Diff line change
@@ -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<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() {
@@ -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| {
14 changes: 8 additions & 6 deletions examples/rustc-driver-getting-diagnostics.rs
Original file line number Diff line number Diff line change
@@ -10,13 +10,13 @@ extern crate rustc_session;
extern crate rustc_span;

use rustc_errors::registry;
use rustc_session::config::{self, CheckCfg};
use rustc_span::source_map;
use rustc_session::config;
use std::io;
use std::path;
use std::process;
use std::str;
use std::sync;
use std::sync::Arc;

// Buffer diagnostics in a Vec<u8>.
#[derive(Clone)]
@@ -53,16 +53,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,
@@ -71,10 +71,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: Arc::default(),
};
rustc_interface::run_compiler(config, |compiler| {
compiler.enter(|queries| {
15 changes: 8 additions & 7 deletions examples/rustc-driver-interacting-with-the-ast.rs
Original file line number Diff line number Diff line change
@@ -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| {
2 changes: 1 addition & 1 deletion src/rustc-driver-getting-diagnostics.md
Original file line number Diff line number Diff line change
@@ -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: oct 2023 --> `nightly-2024-01-19`:
JohnTitor marked this conversation as resolved.
Show resolved Hide resolved

```rust
{{#include ../examples/rustc-driver-getting-diagnostics.rs}}
2 changes: 1 addition & 1 deletion src/rustc-driver-interacting-with-the-ast.md
Original file line number Diff line number Diff line change
@@ -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}}