Skip to content

Commit 63edd2c

Browse files
committed
Remove the HirId/NodeId from where clauses
Also give them a span in the HIR
1 parent 04a3dd8 commit 63edd2c

File tree

13 files changed

+21
-30
lines changed

13 files changed

+21
-30
lines changed

src/librustc/hir/intravisit.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,6 @@ pub fn walk_generic_param<'v, V: Visitor<'v>>(visitor: &mut V, param: &'v Generi
773773

774774
pub fn walk_generics<'v, V: Visitor<'v>>(visitor: &mut V, generics: &'v Generics) {
775775
walk_list!(visitor, visit_generic_param, &generics.params);
776-
visitor.visit_id(generics.where_clause.hir_id);
777776
walk_list!(visitor, visit_where_predicate, &generics.where_clause.predicates);
778777
}
779778

src/librustc/hir/lowering.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,8 +1727,8 @@ impl<'a> LoweringContext<'a> {
17271727
generics: hir::Generics {
17281728
params: lifetime_defs,
17291729
where_clause: hir::WhereClause {
1730-
hir_id: lctx.next_id(),
17311730
predicates: hir_vec![],
1731+
span,
17321732
},
17331733
span,
17341734
},
@@ -2619,8 +2619,8 @@ impl<'a> LoweringContext<'a> {
26192619
generics: hir::Generics {
26202620
params: generic_params,
26212621
where_clause: hir::WhereClause {
2622-
hir_id: this.next_id(),
26232622
predicates: hir_vec![],
2623+
span,
26242624
},
26252625
span,
26262626
},
@@ -2973,11 +2973,11 @@ impl<'a> LoweringContext<'a> {
29732973
AnonymousLifetimeMode::ReportError,
29742974
|this| {
29752975
hir::WhereClause {
2976-
hir_id: this.lower_node_id(wc.id),
29772976
predicates: wc.predicates
29782977
.iter()
29792978
.map(|predicate| this.lower_where_predicate(predicate))
29802979
.collect(),
2980+
span: wc.span,
29812981
}
29822982
},
29832983
)

src/librustc/hir/mod.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,8 @@ impl Generics {
592592
Generics {
593593
params: HirVec::new(),
594594
where_clause: WhereClause {
595-
hir_id: DUMMY_HIR_ID,
596595
predicates: HirVec::new(),
596+
span: DUMMY_SP,
597597
},
598598
span: DUMMY_SP,
599599
}
@@ -644,19 +644,18 @@ pub enum SyntheticTyParamKind {
644644
/// A where-clause in a definition.
645645
#[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable)]
646646
pub struct WhereClause {
647-
pub hir_id: HirId,
648647
pub predicates: HirVec<WherePredicate>,
648+
// Only valid if predicates isn't empty.
649+
span: Span,
649650
}
650651

651652
impl WhereClause {
652653
pub fn span(&self) -> Option<Span> {
653-
self.predicates.iter().map(|predicate| predicate.span())
654-
.fold(None, |acc, i| match (acc, i) {
655-
(None, i) => Some(i),
656-
(Some(acc), i) => {
657-
Some(acc.to(i))
658-
}
659-
})
654+
if self.predicates.is_empty() {
655+
None
656+
} else {
657+
Some(self.span)
658+
}
660659
}
661660
}
662661

src/librustc/hir/print.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2202,8 +2202,8 @@ impl<'a> State<'a> {
22022202
let generics = hir::Generics {
22032203
params: hir::HirVec::new(),
22042204
where_clause: hir::WhereClause {
2205-
hir_id: hir::DUMMY_HIR_ID,
22062205
predicates: hir::HirVec::new(),
2206+
span: syntax_pos::DUMMY_SP,
22072207
},
22082208
span: syntax_pos::DUMMY_SP,
22092209
};

src/libsyntax/ast.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@ impl Default for Generics {
362362
Generics {
363363
params: Vec::new(),
364364
where_clause: WhereClause {
365-
id: DUMMY_NODE_ID,
366365
predicates: Vec::new(),
367366
span: DUMMY_SP,
368367
},
@@ -374,7 +373,6 @@ impl Default for Generics {
374373
/// A where-clause in a definition.
375374
#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
376375
pub struct WhereClause {
377-
pub id: NodeId,
378376
pub predicates: Vec<WherePredicate>,
379377
pub span: Span,
380378
}

src/libsyntax/mut_visit.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -750,8 +750,7 @@ pub fn noop_visit_generics<T: MutVisitor>(generics: &mut Generics, vis: &mut T)
750750
}
751751

752752
pub fn noop_visit_where_clause<T: MutVisitor>(wc: &mut WhereClause, vis: &mut T) {
753-
let WhereClause { id, predicates, span } = wc;
754-
vis.visit_id(id);
753+
let WhereClause { predicates, span } = wc;
755754
visit_vec(predicates, |predicate| vis.visit_where_predicate(predicate));
756755
vis.visit_span(span);
757756
}

src/libsyntax/parse/parser.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5075,7 +5075,6 @@ impl<'a> Parser<'a> {
50755075
Ok(ast::Generics {
50765076
params,
50775077
where_clause: WhereClause {
5078-
id: ast::DUMMY_NODE_ID,
50795078
predicates: Vec::new(),
50805079
span: DUMMY_SP,
50815080
},
@@ -5334,7 +5333,6 @@ impl<'a> Parser<'a> {
53345333
/// ```
53355334
fn parse_where_clause(&mut self) -> PResult<'a, WhereClause> {
53365335
let mut where_clause = WhereClause {
5337-
id: ast::DUMMY_NODE_ID,
53385336
predicates: Vec::new(),
53395337
span: self.prev_span.to(self.prev_span),
53405338
};

src/libsyntax/print/pprust.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3042,7 +3042,6 @@ impl<'a> State<'a> {
30423042
let generics = ast::Generics {
30433043
params: Vec::new(),
30443044
where_clause: ast::WhereClause {
3045-
id: ast::DUMMY_NODE_ID,
30463045
predicates: Vec::new(),
30473046
span: syntax_pos::DUMMY_SP,
30483047
},

src/libsyntax_ext/deriving/generic/ty.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,6 @@ fn mk_generics(params: Vec<ast::GenericParam>, span: Span) -> Generics {
223223
Generics {
224224
params,
225225
where_clause: ast::WhereClause {
226-
id: ast::DUMMY_NODE_ID,
227226
predicates: Vec::new(),
228227
span,
229228
},

src/test/ui/error-codes/E0646.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
error[E0646]: `main` function is not allowed to have a `where` clause
2-
--> $DIR/E0646.rs:1:17
2+
--> $DIR/E0646.rs:1:11
33
|
44
LL | fn main() where (): Copy {}
5-
| ^^^^^^^^ `main` cannot have a `where` clause
5+
| ^^^^^^^^^^^^^^ `main` cannot have a `where` clause
66

77
error: aborting due to previous error
88

0 commit comments

Comments
 (0)