@@ -17,6 +17,7 @@ use rustc_query_impl::Queries as TcxQueries;
17
17
use rustc_session:: config:: { self , OutputFilenames , OutputType } ;
18
18
use rustc_session:: { output:: find_crate_name, Session } ;
19
19
use rustc_span:: symbol:: sym;
20
+ use rustc_span:: Symbol ;
20
21
use std:: any:: Any ;
21
22
use std:: cell:: { Ref , RefCell , RefMut } ;
22
23
use std:: rc:: Rc ;
@@ -74,7 +75,7 @@ pub struct Queries<'tcx> {
74
75
75
76
dep_graph_future : Query < Option < DepGraphFuture > > ,
76
77
parse : Query < ast:: Crate > ,
77
- crate_name : Query < String > ,
78
+ crate_name : Query < Symbol > ,
78
79
register_plugins : Query < ( ast:: Crate , Lrc < LintStore > ) > ,
79
80
expansion : Query < ( Lrc < ast:: Crate > , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > ,
80
81
dep_graph : Query < DepGraph > ,
@@ -135,7 +136,7 @@ impl<'tcx> Queries<'tcx> {
135
136
& * self . codegen_backend ( ) . metadata_loader ( ) ,
136
137
self . compiler . register_lints . as_deref ( ) . unwrap_or_else ( || empty) ,
137
138
krate,
138
- & crate_name,
139
+ crate_name,
139
140
) ?;
140
141
141
142
// Compute the dependency graph (in the background). We want to do
@@ -149,7 +150,7 @@ impl<'tcx> Queries<'tcx> {
149
150
} )
150
151
}
151
152
152
- pub fn crate_name ( & self ) -> Result < & Query < String > > {
153
+ pub fn crate_name ( & self ) -> Result < & Query < Symbol > > {
153
154
self . crate_name . compute ( || {
154
155
Ok ( {
155
156
let parse_result = self . parse ( ) ?;
@@ -165,18 +166,18 @@ impl<'tcx> Queries<'tcx> {
165
166
) -> Result < & Query < ( Lrc < ast:: Crate > , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > > {
166
167
trace ! ( "expansion" ) ;
167
168
self . expansion . compute ( || {
168
- let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
169
+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
169
170
let ( krate, lint_store) = self . register_plugins ( ) ?. take ( ) ;
170
171
let _timer = self . session ( ) . timer ( "configure_and_expand" ) ;
171
172
let sess = self . session ( ) ;
172
173
let mut resolver = passes:: create_resolver (
173
174
sess. clone ( ) ,
174
175
self . codegen_backend ( ) . metadata_loader ( ) ,
175
176
& krate,
176
- & crate_name,
177
+ crate_name,
177
178
) ;
178
179
let krate = resolver. access ( |resolver| {
179
- passes:: configure_and_expand ( sess, & lint_store, krate, & crate_name, resolver)
180
+ passes:: configure_and_expand ( sess, & lint_store, krate, crate_name, resolver)
180
181
} ) ?;
181
182
Ok ( ( Lrc :: new ( krate) , Rc :: new ( RefCell :: new ( resolver) ) , lint_store) )
182
183
} )
@@ -201,20 +202,20 @@ impl<'tcx> Queries<'tcx> {
201
202
pub fn prepare_outputs ( & self ) -> Result < & Query < OutputFilenames > > {
202
203
self . prepare_outputs . compute ( || {
203
204
let ( krate, boxed_resolver, _) = & * self . expansion ( ) ?. peek ( ) ;
204
- let crate_name = self . crate_name ( ) ?. peek ( ) ;
205
+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
205
206
passes:: prepare_outputs (
206
207
self . session ( ) ,
207
208
self . compiler ,
208
209
krate,
209
210
& * boxed_resolver,
210
- & crate_name,
211
+ crate_name,
211
212
)
212
213
} )
213
214
}
214
215
215
216
pub fn global_ctxt ( & ' tcx self ) -> Result < & Query < QueryContext < ' tcx > > > {
216
217
self . global_ctxt . compute ( || {
217
- let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
218
+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
218
219
let outputs = self . prepare_outputs ( ) ?. take ( ) ;
219
220
let dep_graph = self . dep_graph ( ) ?. peek ( ) . clone ( ) ;
220
221
let ( krate, resolver, lint_store) = self . expansion ( ) ?. take ( ) ;
@@ -225,7 +226,7 @@ impl<'tcx> Queries<'tcx> {
225
226
dep_graph,
226
227
resolver,
227
228
outputs,
228
- & crate_name,
229
+ crate_name,
229
230
& self . queries ,
230
231
& self . gcx ,
231
232
& self . arena ,
0 commit comments