@@ -17,6 +17,7 @@ use rustc_query_impl::Queries as TcxQueries;
1717use rustc_session:: config:: { self , OutputFilenames , OutputType } ;
1818use rustc_session:: { output:: find_crate_name, Session } ;
1919use rustc_span:: symbol:: sym;
20+ use rustc_span:: Symbol ;
2021use std:: any:: Any ;
2122use std:: cell:: { Ref , RefCell , RefMut } ;
2223use std:: rc:: Rc ;
@@ -74,7 +75,7 @@ pub struct Queries<'tcx> {
7475
7576 dep_graph_future : Query < Option < DepGraphFuture > > ,
7677 parse : Query < ast:: Crate > ,
77- crate_name : Query < String > ,
78+ crate_name : Query < Symbol > ,
7879 register_plugins : Query < ( ast:: Crate , Lrc < LintStore > ) > ,
7980 expansion : Query < ( Lrc < ast:: Crate > , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > ,
8081 dep_graph : Query < DepGraph > ,
@@ -135,7 +136,7 @@ impl<'tcx> Queries<'tcx> {
135136 & * self . codegen_backend ( ) . metadata_loader ( ) ,
136137 self . compiler . register_lints . as_deref ( ) . unwrap_or_else ( || empty) ,
137138 krate,
138- & crate_name,
139+ crate_name,
139140 ) ?;
140141
141142 // Compute the dependency graph (in the background). We want to do
@@ -149,7 +150,7 @@ impl<'tcx> Queries<'tcx> {
149150 } )
150151 }
151152
152- pub fn crate_name ( & self ) -> Result < & Query < String > > {
153+ pub fn crate_name ( & self ) -> Result < & Query < Symbol > > {
153154 self . crate_name . compute ( || {
154155 Ok ( {
155156 let parse_result = self . parse ( ) ?;
@@ -165,18 +166,18 @@ impl<'tcx> Queries<'tcx> {
165166 ) -> Result < & Query < ( Lrc < ast:: Crate > , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > > {
166167 trace ! ( "expansion" ) ;
167168 self . expansion . compute ( || {
168- let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
169+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
169170 let ( krate, lint_store) = self . register_plugins ( ) ?. take ( ) ;
170171 let _timer = self . session ( ) . timer ( "configure_and_expand" ) ;
171172 let sess = self . session ( ) ;
172173 let mut resolver = passes:: create_resolver (
173174 sess. clone ( ) ,
174175 self . codegen_backend ( ) . metadata_loader ( ) ,
175176 & krate,
176- & crate_name,
177+ crate_name,
177178 ) ;
178179 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)
180181 } ) ?;
181182 Ok ( ( Lrc :: new ( krate) , Rc :: new ( RefCell :: new ( resolver) ) , lint_store) )
182183 } )
@@ -201,20 +202,20 @@ impl<'tcx> Queries<'tcx> {
201202 pub fn prepare_outputs ( & self ) -> Result < & Query < OutputFilenames > > {
202203 self . prepare_outputs . compute ( || {
203204 let ( krate, boxed_resolver, _) = & * self . expansion ( ) ?. peek ( ) ;
204- let crate_name = self . crate_name ( ) ?. peek ( ) ;
205+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
205206 passes:: prepare_outputs (
206207 self . session ( ) ,
207208 self . compiler ,
208209 krate,
209210 & * boxed_resolver,
210- & crate_name,
211+ crate_name,
211212 )
212213 } )
213214 }
214215
215216 pub fn global_ctxt ( & ' tcx self ) -> Result < & Query < QueryContext < ' tcx > > > {
216217 self . global_ctxt . compute ( || {
217- let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
218+ let crate_name = * self . crate_name ( ) ?. peek ( ) ;
218219 let outputs = self . prepare_outputs ( ) ?. take ( ) ;
219220 let dep_graph = self . dep_graph ( ) ?. peek ( ) . clone ( ) ;
220221 let ( krate, resolver, lint_store) = self . expansion ( ) ?. take ( ) ;
@@ -225,7 +226,7 @@ impl<'tcx> Queries<'tcx> {
225226 dep_graph,
226227 resolver,
227228 outputs,
228- & crate_name,
229+ crate_name,
229230 & self . queries ,
230231 & self . gcx ,
231232 & self . arena ,
0 commit comments