Skip to content

Commit 551cb06

Browse files
authored
Rollup merge of #38171 - jseyfried:cleanup, r=nrc
Miscellaneous cleanup/refactoring in `resolve` and `syntax::ext` r? @nrc
2 parents 58d58c2 + f705c69 commit 551cb06

38 files changed

+508
-738
lines changed

src/librustc/hir/intravisit.rs

-1
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,6 @@ pub fn walk_crate<'v, V: Visitor<'v>>(visitor: &mut V, krate: &'v Crate) {
365365
pub fn walk_macro_def<'v, V: Visitor<'v>>(visitor: &mut V, macro_def: &'v MacroDef) {
366366
visitor.visit_id(macro_def.id);
367367
visitor.visit_name(macro_def.span, macro_def.name);
368-
walk_opt_name(visitor, macro_def.span, macro_def.imported_from);
369368
walk_list!(visitor, visit_attribute, &macro_def.attrs);
370369
}
371370

src/librustc/hir/lowering.rs

+12-8
Original file line numberDiff line numberDiff line change
@@ -433,13 +433,19 @@ impl<'a> LoweringContext<'a> {
433433
segment: &PathSegment,
434434
param_mode: ParamMode)
435435
-> hir::PathSegment {
436-
let parameters = match segment.parameters {
437-
PathParameters::AngleBracketed(ref data) => {
438-
let data = self.lower_angle_bracketed_parameter_data(data, param_mode);
439-
hir::AngleBracketedParameters(data)
436+
let parameters = if let Some(ref parameters) = segment.parameters {
437+
match **parameters {
438+
PathParameters::AngleBracketed(ref data) => {
439+
let data = self.lower_angle_bracketed_parameter_data(data, param_mode);
440+
hir::AngleBracketedParameters(data)
441+
}
442+
PathParameters::Parenthesized(ref data) => {
443+
hir::ParenthesizedParameters(self.lower_parenthesized_parameter_data(data))
444+
}
440445
}
441-
PathParameters::Parenthesized(ref data) =>
442-
hir::ParenthesizedParameters(self.lower_parenthesized_parameter_data(data)),
446+
} else {
447+
let data = self.lower_angle_bracketed_parameter_data(&Default::default(), param_mode);
448+
hir::AngleBracketedParameters(data)
443449
};
444450

445451
hir::PathSegment {
@@ -987,8 +993,6 @@ impl<'a> LoweringContext<'a> {
987993
attrs: self.lower_attrs(&m.attrs),
988994
id: m.id,
989995
span: m.span,
990-
imported_from: m.imported_from.map(|x| x.name),
991-
allow_internal_unstable: m.allow_internal_unstable,
992996
body: m.body.clone().into(),
993997
}
994998
}

src/librustc/hir/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -475,8 +475,6 @@ pub struct MacroDef {
475475
pub attrs: HirVec<Attribute>,
476476
pub id: NodeId,
477477
pub span: Span,
478-
pub imported_from: Option<Name>,
479-
pub allow_internal_unstable: bool,
480478
pub body: HirVec<TokenTree>,
481479
}
482480

src/librustc/middle/stability.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,7 @@ impl<'a, 'tcx> Visitor<'tcx> for Annotator<'a, 'tcx> {
302302
}
303303

304304
fn visit_macro_def(&mut self, md: &'tcx hir::MacroDef) {
305-
if md.imported_from.is_none() {
306-
self.annotate(md.id, &md.attrs, md.span, AnnotationKind::Required, |_| {});
307-
}
305+
self.annotate(md.id, &md.attrs, md.span, AnnotationKind::Required, |_| {});
308306
}
309307
}
310308

@@ -373,9 +371,7 @@ impl<'a, 'tcx> Visitor<'tcx> for MissingStabilityAnnotations<'a, 'tcx> {
373371
}
374372

375373
fn visit_macro_def(&mut self, md: &'tcx hir::MacroDef) {
376-
if md.imported_from.is_none() {
377-
self.check_missing_stability(md.id, md.span);
378-
}
374+
self.check_missing_stability(md.id, md.span);
379375
}
380376
}
381377

src/librustc/ty/context.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -762,11 +762,9 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
762762
/// reference to the context, to allow formatting values that need it.
763763
pub fn create_and_enter<F, R>(s: &'tcx Session,
764764
arenas: &'tcx CtxtArenas<'tcx>,
765-
trait_map: TraitMap,
765+
resolutions: ty::Resolutions,
766766
named_region_map: resolve_lifetime::NamedRegionMap,
767767
map: ast_map::Map<'tcx>,
768-
freevars: FreevarMap,
769-
maybe_unused_trait_imports: NodeSet,
770768
region_maps: RegionMaps,
771769
lang_items: middle::lang_items::LanguageItems,
772770
stability: stability::Index<'tcx>,
@@ -790,7 +788,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
790788
item_variance_map: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
791789
variance_computed: Cell::new(false),
792790
sess: s,
793-
trait_map: trait_map,
791+
trait_map: resolutions.trait_map,
794792
tables: RefCell::new(Tables::empty()),
795793
impl_trait_refs: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
796794
trait_defs: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
@@ -802,8 +800,8 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
802800
fulfilled_predicates: RefCell::new(fulfilled_predicates),
803801
map: map,
804802
mir_map: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
805-
freevars: RefCell::new(freevars),
806-
maybe_unused_trait_imports: maybe_unused_trait_imports,
803+
freevars: RefCell::new(resolutions.freevars),
804+
maybe_unused_trait_imports: resolutions.maybe_unused_trait_imports,
807805
item_types: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
808806
rcache: RefCell::new(FxHashMap()),
809807
tc_cache: RefCell::new(FxHashMap()),

src/librustc/ty/mod.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub use self::LvaluePreference::*;
1717
pub use self::fold::TypeFoldable;
1818

1919
use dep_graph::{self, DepNode};
20-
use hir::map as ast_map;
20+
use hir::{map as ast_map, FreevarMap, TraitMap};
2121
use middle;
2222
use hir::def::{Def, CtorKind, ExportMap};
2323
use hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX, LOCAL_CRATE};
@@ -112,6 +112,13 @@ pub struct CrateAnalysis<'tcx> {
112112
pub hir_ty_to_ty: NodeMap<Ty<'tcx>>,
113113
}
114114

115+
#[derive(Clone)]
116+
pub struct Resolutions {
117+
pub freevars: FreevarMap,
118+
pub trait_map: TraitMap,
119+
pub maybe_unused_trait_imports: NodeSet,
120+
}
121+
115122
#[derive(Copy, Clone)]
116123
pub enum DtorKind {
117124
NoDtor,

src/librustc_driver/driver.rs

+3-13
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::hir;
12-
use rustc::hir::{map as hir_map, FreevarMap, TraitMap};
11+
use rustc::hir::{self, map as hir_map};
1312
use rustc::hir::lowering::lower_crate;
1413
use rustc_data_structures::stable_hasher::StableHasher;
1514
use rustc_mir as mir;
@@ -20,7 +19,7 @@ use rustc::session::search_paths::PathKind;
2019
use rustc::lint;
2120
use rustc::middle::{self, dependency_format, stability, reachable};
2221
use rustc::middle::privacy::AccessLevels;
23-
use rustc::ty::{self, TyCtxt};
22+
use rustc::ty::{self, TyCtxt, Resolutions};
2423
use rustc::util::common::time;
2524
use rustc::util::nodemap::{NodeSet, NodeMap};
2625
use rustc_borrowck as borrowck;
@@ -59,13 +58,6 @@ use syntax_ext;
5958

6059
use derive_registrar;
6160

62-
#[derive(Clone)]
63-
pub struct Resolutions {
64-
pub freevars: FreevarMap,
65-
pub trait_map: TraitMap,
66-
pub maybe_unused_trait_imports: NodeSet,
67-
}
68-
6961
pub fn compile_input(sess: &Session,
7062
cstore: &CStore,
7163
input: &Input,
@@ -864,11 +856,9 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
864856

865857
TyCtxt::create_and_enter(sess,
866858
arenas,
867-
resolutions.trait_map,
859+
resolutions,
868860
named_region_map,
869861
hir_map,
870-
resolutions.freevars,
871-
resolutions.maybe_unused_trait_imports,
872862
region_map,
873863
lang_items,
874864
index,

src/librustc_driver/pretty.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ pub use self::PpSourceMode::*;
1515
pub use self::PpMode::*;
1616
use self::NodesMatchingUII::*;
1717

18-
use abort_on_err;
19-
use driver::{self, Resolutions};
18+
use {abort_on_err, driver};
2019

21-
use rustc::ty::{self, TyCtxt};
20+
use rustc::ty::{self, TyCtxt, Resolutions};
2221
use rustc::cfg;
2322
use rustc::cfg::graphviz::LabelledCFG;
2423
use rustc::dep_graph::DepGraph;

src/librustc_driver/test.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,9 @@ fn test_env<F>(source_string: &str,
138138
let index = stability::Index::new(&ast_map);
139139
TyCtxt::create_and_enter(&sess,
140140
&arenas,
141-
resolutions.trait_map,
141+
resolutions,
142142
named_region_map.unwrap(),
143143
ast_map,
144-
resolutions.freevars,
145-
resolutions.maybe_unused_trait_imports,
146144
region_map,
147145
lang_items,
148146
index,

src/librustc_metadata/cstore_impl.rs

-2
Original file line numberDiff line numberDiff line change
@@ -418,8 +418,6 @@ impl<'tcx> CrateStore<'tcx> for cstore::CStore {
418418
ident: ast::Ident::with_empty_ctxt(name),
419419
id: ast::DUMMY_NODE_ID,
420420
span: local_span,
421-
imported_from: None, // FIXME
422-
allow_internal_unstable: attr::contains_name(&attrs, "allow_internal_unstable"),
423421
attrs: attrs,
424422
body: body,
425423
})

src/librustc_passes/ast_validation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
171171
match item.node {
172172
ItemKind::Use(ref view_path) => {
173173
let path = view_path.node.path();
174-
if !path.segments.iter().all(|segment| segment.parameters.is_empty()) {
174+
if path.segments.iter().any(|segment| segment.parameters.is_some()) {
175175
self.err_handler()
176176
.span_err(path.span, "type or lifetime parameters in import path");
177177
}
@@ -275,7 +275,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
275275
fn visit_vis(&mut self, vis: &'a Visibility) {
276276
match *vis {
277277
Visibility::Restricted { ref path, .. } => {
278-
if !path.segments.iter().all(|segment| segment.parameters.is_empty()) {
278+
if !path.segments.iter().all(|segment| segment.parameters.is_none()) {
279279
self.err_handler()
280280
.span_err(path.span, "type or lifetime parameters in visibility path");
281281
}

0 commit comments

Comments
 (0)