@@ -7,20 +7,16 @@ extern crate rustc;
7
7
extern crate rustc_driver;
8
8
extern crate rustc_errors;
9
9
extern crate rustc_resolve;
10
- extern crate rustc_save_analysis;
11
10
extern crate syntax;
12
11
13
- use rustc_driver:: { run, run_compiler, CompilerCalls , RustcDefaultCalls , Compilation } ;
12
+ use rustc_driver:: { run, run_compiler, CompilerCalls , RustcDefaultCalls , Compilation , enable_save_analysis , get_args } ;
14
13
use rustc_driver:: driver:: CompileController ;
15
- use rustc_save_analysis as save;
16
- use rustc_save_analysis:: DumpHandler ;
17
- use rustc:: session:: { early_error, Session } ;
14
+ use rustc:: session:: Session ;
18
15
use rustc:: session:: config:: { self , ErrorOutputType , Input } ;
19
- use rustc:: util:: common:: time;
20
16
use syntax:: ast;
21
17
22
18
use std:: path:: PathBuf ;
23
- use std:: { env , process} ;
19
+ use std:: process;
24
20
25
21
struct ShimCalls ;
26
22
@@ -66,38 +62,13 @@ impl<'a> CompilerCalls<'a> for ShimCalls {
66
62
fn build_controller ( & mut self , a : & Session , b : & getopts:: Matches ) -> CompileController < ' a > {
67
63
let mut result = RustcDefaultCalls . build_controller ( a, b) ;
68
64
69
- // FIXME(#2) use enable_save_analysis
70
- result. keep_ast = true ;
71
- // FIXME(#3) set continue_parse_after_error
72
-
73
- result. after_analysis . callback = box |state| {
74
- time ( state. session . time_passes ( ) , "save analysis" , || {
75
- save:: process_crate ( state. tcx . unwrap ( ) ,
76
- state. expanded_crate . unwrap ( ) ,
77
- state. analysis . unwrap ( ) ,
78
- state. crate_name . unwrap ( ) ,
79
- None ,
80
- DumpHandler :: new ( state. out_dir ,
81
- state. crate_name . unwrap ( ) ) )
82
- } ) ;
83
- } ;
84
- result. after_analysis . run_callback_on_error = true ;
85
- result. make_glob_map = :: rustc_resolve:: MakeGlobMap :: Yes ;
65
+ result. continue_parse_after_error = true ;
66
+ enable_save_analysis ( & mut result) ;
86
67
87
68
result
88
69
}
89
70
}
90
71
91
- // FIXME(#2) use exported version
92
- fn get_args ( ) -> Vec < String > {
93
- env:: args_os ( ) . enumerate ( )
94
- . map ( |( i, arg) | arg. into_string ( ) . unwrap_or_else ( |arg| {
95
- early_error ( ErrorOutputType :: default ( ) ,
96
- & format ! ( "Argument {} is not valid Unicode: {:?}" , i, arg) )
97
- } ) )
98
- . collect ( )
99
- }
100
-
101
72
fn main ( ) {
102
73
env_logger:: init ( ) . unwrap ( ) ;
103
74
0 commit comments