Skip to content

Commit 5fd796a

Browse files
committed
rustc: Combine resolver outputs into a single struct
1 parent fb353f0 commit 5fd796a

File tree

5 files changed

+41
-50
lines changed

5 files changed

+41
-50
lines changed

src/librustc/ty/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1199,7 +1199,7 @@ impl<'tcx> TyCtxt<'tcx> {
11991199
local_providers: ty::query::Providers<'tcx>,
12001200
extern_providers: ty::query::Providers<'tcx>,
12011201
arenas: &'tcx AllArenas,
1202-
resolutions: ty::Resolutions,
1202+
resolutions: ty::ResolverOutputs,
12031203
hir: hir_map::Map<'tcx>,
12041204
on_disk_query_result_cache: query::OnDiskCache<'tcx>,
12051205
crate_name: &str,

src/librustc/ty/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ mod sty;
119119

120120
// Data types
121121

122-
#[derive(Clone)]
123-
pub struct Resolutions {
122+
pub struct ResolverOutputs {
123+
pub definitions: hir_map::Definitions,
124124
pub extern_crate_map: NodeMap<CrateNum>,
125125
pub trait_map: TraitMap,
126126
pub maybe_unused_trait_imports: NodeSet,

src/librustc_interface/passes.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ use log::{info, warn, log_enabled};
66
use rustc::dep_graph::DepGraph;
77
use rustc::hir;
88
use rustc::hir::lowering::lower_crate;
9-
use rustc::hir::map::Definitions;
109
use rustc::hir::def_id::{CrateNum, LOCAL_CRATE};
1110
use rustc::lint;
1211
use rustc::middle::{self, reachable, resolve_lifetime, stability};
1312
use rustc::middle::cstore::{CrateStore, MetadataLoader};
14-
use rustc::ty::{self, AllArenas, Resolutions, TyCtxt, GlobalCtxt};
13+
use rustc::ty::{self, AllArenas, ResolverOutputs, TyCtxt, GlobalCtxt};
1514
use rustc::ty::steal::Steal;
1615
use rustc::traits;
1716
use rustc::util::common::{time, ErrorReported};
@@ -47,12 +46,10 @@ use syntax_ext;
4746
use rustc_serialize::json;
4847
use tempfile::Builder as TempFileBuilder;
4948

49+
use std::{env, fs, iter, mem};
5050
use std::any::Any;
51-
use std::env;
5251
use std::ffi::OsString;
53-
use std::fs;
5452
use std::io::{self, Write};
55-
use std::iter;
5653
use std::path::PathBuf;
5754
use std::cell::RefCell;
5855
use std::rc::Rc;
@@ -161,13 +158,12 @@ pub fn configure_and_expand(
161158
}
162159

163160
pub struct ExpansionResult {
164-
pub defs: Steal<hir::map::Definitions>,
165-
pub resolutions: Steal<Resolutions>,
161+
pub resolver_outputs: Steal<ResolverOutputs>,
166162
}
167163

168164
impl ExpansionResult {
169-
fn from_resolver_outputs((defs, resolutions): (Definitions, Resolutions)) -> Self {
170-
ExpansionResult { defs: Steal::new(defs), resolutions: Steal::new(resolutions) }
165+
fn from_resolver_outputs(resolver_outputs: ResolverOutputs) -> Self {
166+
ExpansionResult { resolver_outputs: Steal::new(resolver_outputs) }
171167
}
172168
}
173169

@@ -789,15 +785,15 @@ pub fn create_global_ctxt(
789785
compiler: &Compiler,
790786
lint_store: Lrc<lint::LintStore>,
791787
mut hir_forest: hir::map::Forest,
792-
defs: hir::map::Definitions,
793-
resolutions: Resolutions,
788+
mut resolver_outputs: ResolverOutputs,
794789
outputs: OutputFilenames,
795790
crate_name: &str,
796791
) -> BoxedGlobalCtxt {
797792
let sess = compiler.session().clone();
798793
let cstore = compiler.cstore.clone();
799794
let codegen_backend = compiler.codegen_backend().clone();
800795
let crate_name = crate_name.to_string();
796+
let defs = mem::take(&mut resolver_outputs.definitions);
801797

802798
let ((), result) = BoxedGlobalCtxt::new(static move || {
803799
let sess = &*sess;
@@ -830,7 +826,7 @@ pub fn create_global_ctxt(
830826
local_providers,
831827
extern_providers,
832828
&arenas,
833-
resolutions,
829+
resolver_outputs,
834830
hir_map,
835831
query_result_on_disk_cache,
836832
&crate_name,

src/librustc_interface/queries.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,7 @@ impl Compiler {
234234
self,
235235
lint_store,
236236
hir_forest.steal(),
237-
expansion.defs.steal(),
238-
expansion.resolutions.steal(),
237+
expansion.resolver_outputs.steal(),
239238
outputs,
240239
&crate_name))
241240
})

src/librustc_resolve/lib.rs

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rustc::hir::def::{self, DefKind, PartialRes, CtorKind, CtorOf, NonMacroAttrK
2828
use rustc::hir::def::Namespace::*;
2929
use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, CrateNum, DefId};
3030
use rustc::hir::{TraitMap, GlobMap};
31-
use rustc::ty::{self, DefIdTree};
31+
use rustc::ty::{self, DefIdTree, ResolverOutputs};
3232
use rustc::util::nodemap::{NodeMap, NodeSet, FxHashMap, FxHashSet, DefIdMap};
3333
use rustc::span_bug;
3434

@@ -1236,38 +1236,34 @@ impl<'a> Resolver<'a> {
12361236
Default::default()
12371237
}
12381238

1239-
pub fn into_outputs(self) -> (Definitions, ty::Resolutions) {
1240-
(
1241-
self.definitions,
1242-
ty::Resolutions {
1243-
extern_crate_map: self.extern_crate_map,
1244-
export_map: self.export_map,
1245-
trait_map: self.trait_map,
1246-
glob_map: self.glob_map,
1247-
maybe_unused_trait_imports: self.maybe_unused_trait_imports,
1248-
maybe_unused_extern_crates: self.maybe_unused_extern_crates,
1249-
extern_prelude: self.extern_prelude.iter().map(|(ident, entry)| {
1250-
(ident.name, entry.introduced_by_item)
1251-
}).collect(),
1252-
},
1253-
)
1254-
}
1255-
1256-
pub fn clone_outputs(&self) -> (Definitions, ty::Resolutions) {
1257-
(
1258-
self.definitions.clone(),
1259-
ty::Resolutions {
1260-
extern_crate_map: self.extern_crate_map.clone(),
1261-
export_map: self.export_map.clone(),
1262-
trait_map: self.trait_map.clone(),
1263-
glob_map: self.glob_map.clone(),
1264-
maybe_unused_trait_imports: self.maybe_unused_trait_imports.clone(),
1265-
maybe_unused_extern_crates: self.maybe_unused_extern_crates.clone(),
1266-
extern_prelude: self.extern_prelude.iter().map(|(ident, entry)| {
1267-
(ident.name, entry.introduced_by_item)
1268-
}).collect(),
1269-
},
1270-
)
1239+
pub fn into_outputs(self) -> ResolverOutputs {
1240+
ResolverOutputs {
1241+
definitions: self.definitions,
1242+
extern_crate_map: self.extern_crate_map,
1243+
export_map: self.export_map,
1244+
trait_map: self.trait_map,
1245+
glob_map: self.glob_map,
1246+
maybe_unused_trait_imports: self.maybe_unused_trait_imports,
1247+
maybe_unused_extern_crates: self.maybe_unused_extern_crates,
1248+
extern_prelude: self.extern_prelude.iter().map(|(ident, entry)| {
1249+
(ident.name, entry.introduced_by_item)
1250+
}).collect(),
1251+
}
1252+
}
1253+
1254+
pub fn clone_outputs(&self) -> ResolverOutputs {
1255+
ResolverOutputs {
1256+
definitions: self.definitions.clone(),
1257+
extern_crate_map: self.extern_crate_map.clone(),
1258+
export_map: self.export_map.clone(),
1259+
trait_map: self.trait_map.clone(),
1260+
glob_map: self.glob_map.clone(),
1261+
maybe_unused_trait_imports: self.maybe_unused_trait_imports.clone(),
1262+
maybe_unused_extern_crates: self.maybe_unused_extern_crates.clone(),
1263+
extern_prelude: self.extern_prelude.iter().map(|(ident, entry)| {
1264+
(ident.name, entry.introduced_by_item)
1265+
}).collect(),
1266+
}
12711267
}
12721268

12731269
fn non_macro_attr(&self, mark_used: bool) -> Lrc<SyntaxExtension> {

0 commit comments

Comments
 (0)