|
5 | 5 |
|
6 | 6 | extern crate rustc_driver;
|
7 | 7 | extern crate rustc_interface;
|
8 |
| -#[macro_use] |
9 |
| -extern crate rustc_smir; |
10 |
| -extern crate stable_mir; |
| 8 | +extern crate rustc_middle; |
| 9 | +extern crate rustc_public; |
11 | 10 |
|
12 | 11 | use std::collections::HashSet;
|
13 | 12 | use std::io::stdout;
|
14 |
| -use rustc_smir::{run, rustc_internal}; |
15 |
| -use stable_mir::{CompilerError, CrateDef}; |
| 13 | +use rustc_public::run; |
| 14 | +use rustc_public::{CompilerError, CrateDef}; |
16 | 15 | use std::ops::ControlFlow;
|
17 | 16 | use std::process::ExitCode;
|
18 |
| -use stable_mir::mir::{LocalDecl, MirVisitor, Terminator, TerminatorKind}; |
19 |
| -use stable_mir::mir::mono::Instance; |
20 |
| -use stable_mir::mir::visit::Location; |
21 |
| -use stable_mir::ty::{RigidTy, Ty, TyKind}; |
| 17 | +use rustc_public::mir::{LocalDecl, MirVisitor, Terminator, TerminatorKind}; |
| 18 | +use rustc_public::mir::mono::Instance; |
| 19 | +use rustc_public::mir::visit::Location; |
| 20 | +use rustc_public::ty::{RigidTy, Ty, TyKind}; |
22 | 21 |
|
23 | 22 |
|
24 | 23 | /// This is a wrapper that can be used to replace rustc.
|
25 | 24 | fn main() -> ExitCode {
|
26 |
| - let rustc_args = std::env::args().into_iter().collect(); |
27 |
| - let result = run!(rustc_args, start_demo); |
| 25 | + let rustc_args: Vec<String> = std::env::args().collect(); |
| 26 | + let result = run!(&rustc_args, start_demo); |
28 | 27 | match result {
|
29 | 28 | Ok(_) | Err(CompilerError::Skipped | CompilerError::Interrupted(_)) => ExitCode::SUCCESS,
|
30 | 29 | _ => ExitCode::FAILURE,
|
31 | 30 | }
|
32 | 31 | }
|
33 | 32 |
|
34 | 33 | fn start_demo() -> ControlFlow<()> {
|
35 |
| - let crate_name = stable_mir::local_crate().name; |
| 34 | + let crate_name = rustc_public::local_crate().name; |
36 | 35 | eprintln!("--- Analyzing crate: {crate_name}");
|
37 | 36 |
|
38 |
| - let crate_items = stable_mir::all_local_items(); |
| 37 | + let crate_items = rustc_public::all_local_items(); |
39 | 38 | for item in crate_items {
|
40 | 39 | eprintln!(" - {} @{:?}", item.name(), item.span())
|
41 | 40 | }
|
42 | 41 |
|
43 |
| - let entry_fn = stable_mir::entry_fn().unwrap(); |
| 42 | + let entry_fn = rustc_public::entry_fn().unwrap(); |
44 | 43 | let entry_instance = Instance::try_from(entry_fn).unwrap();
|
45 | 44 | analyze_instance(entry_instance);
|
46 | 45 | ControlFlow::Break(())
|
|
0 commit comments