File tree 3 files changed +16
-18
lines changed
3 files changed +16
-18
lines changed Original file line number Diff line number Diff line change @@ -18,8 +18,8 @@ use std::path::Path;
18
18
19
19
use rustc_ast_pretty:: pprust:: item_to_string;
20
20
use rustc_data_structures:: sync:: Lrc ;
21
- use rustc_driver:: { Compilation , RunCompiler } ;
22
- use rustc_interface:: interface:: Compiler ;
21
+ use rustc_driver:: { Compilation , run_compiler } ;
22
+ use rustc_interface:: interface:: { Compiler , Config } ;
23
23
use rustc_middle:: ty:: TyCtxt ;
24
24
25
25
struct MyFileLoader ;
@@ -51,6 +51,10 @@ fn main() {
51
51
struct MyCallbacks ;
52
52
53
53
impl rustc_driver:: Callbacks for MyCallbacks {
54
+ fn config ( & mut self , config : & mut Config ) {
55
+ config. file_loader = Some ( Box :: new ( MyFileLoader ) ) ;
56
+ }
57
+
54
58
fn after_crate_root_parsing (
55
59
& mut self ,
56
60
_compiler : & Compiler ,
@@ -83,10 +87,5 @@ impl rustc_driver::Callbacks for MyCallbacks {
83
87
}
84
88
85
89
fn main ( ) {
86
- match RunCompiler :: new ( & [ "main.rs" . to_string ( ) ] , & mut MyCallbacks ) {
87
- mut compiler => {
88
- compiler. set_file_loader ( Some ( Box :: new ( MyFileLoader ) ) ) ;
89
- compiler. run ( ) ;
90
- }
91
- }
90
+ run_compiler ( & [ "main.rs" . to_string ( ) ] , & mut MyCallbacks ) ;
92
91
}
Original file line number Diff line number Diff line change @@ -18,8 +18,8 @@ use std::path::Path;
18
18
19
19
use rustc_ast_pretty:: pprust:: item_to_string;
20
20
use rustc_data_structures:: sync:: Lrc ;
21
- use rustc_driver:: { Compilation , RunCompiler } ;
22
- use rustc_interface:: interface:: Compiler ;
21
+ use rustc_driver:: { Compilation , run_compiler } ;
22
+ use rustc_interface:: interface:: { Compiler , Config } ;
23
23
use rustc_middle:: ty:: TyCtxt ;
24
24
25
25
struct MyFileLoader ;
@@ -51,6 +51,10 @@ fn main() {
51
51
struct MyCallbacks ;
52
52
53
53
impl rustc_driver:: Callbacks for MyCallbacks {
54
+ fn config ( & mut self , config : & mut Config ) {
55
+ config. file_loader = Some ( Box :: new ( MyFileLoader ) ) ;
56
+ }
57
+
54
58
fn after_crate_root_parsing (
55
59
& mut self ,
56
60
_compiler : & Compiler ,
@@ -90,10 +94,5 @@ impl rustc_driver::Callbacks for MyCallbacks {
90
94
}
91
95
92
96
fn main ( ) {
93
- match RunCompiler :: new ( & [ "main.rs" . to_string ( ) ] , & mut MyCallbacks ) {
94
- mut compiler => {
95
- compiler. set_file_loader ( Some ( Box :: new ( MyFileLoader ) ) ) ;
96
- compiler. run ( ) ;
97
- }
98
- }
97
+ run_compiler ( & [ "main.rs" . to_string ( ) ] , & mut MyCallbacks ) ;
99
98
}
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ The [`rustc_driver`] is essentially `rustc`'s `main` function.
6
6
It acts as the glue for running the various phases of the compiler in the correct order,
7
7
using the interface defined in the [ ` rustc_interface ` ] crate. Where possible, using [ ` rustc_driver ` ] rather than [ ` rustc_interface ` ] is recommended.
8
8
9
- The main entry point of [ ` rustc_driver ` ] is [ ` rustc_driver::RunCompiler ` ] [ rd_rc ] .
9
+ The main entry point of [ ` rustc_driver ` ] is [ ` rustc_driver::run_compiler ` ] [ rd_rc ] .
10
10
This builder accepts the same command-line args as rustc as well as an implementation of [ ` Callbacks ` ] [ cb ] and a couple of other optional options.
11
11
[ ` Callbacks ` ] [ cb ] is a ` trait ` that allows for custom compiler configuration,
12
12
as well as allowing custom code to run after different phases of the compilation.
@@ -40,7 +40,7 @@ specifically [`rustc_driver_impl::run_compiler`][rdi_rc]
40
40
[ cb ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html
41
41
[ example ] : https://github.com/rust-lang/rustc-dev-guide/blob/master/examples/rustc-interface-example.rs
42
42
[ i_rc ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/interface/fn.run_compiler.html
43
- [ rd_rc ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/struct.RunCompiler .html
43
+ [ rd_rc ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/fn.run_compiler .html
44
44
[ rdi_rc ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver_impl/fn.run_compiler.html
45
45
[ stupid-stats ] : https://github.com/nrc/stupid-stats
46
46
[ `nightly-rustc` ] : https://doc.rust-lang.org/nightly/nightly-rustc/
You can’t perform that action at this time.
0 commit comments