Skip to content

Commit e61e73f

Browse files
Rollup merge of rust-lang#43501 - topecongiro:span-to-whereclause, r=nrc
Add Span to ast::WhereClause This PR adds `Span` field to `ast::WhereClause`. The motivation here is to make rustfmt's life easier when recovering comments before and after where clause. r? @nrc
2 parents f205f48 + 6375b77 commit e61e73f

File tree

6 files changed

+13
-2
lines changed

6 files changed

+13
-2
lines changed

src/libsyntax/ast.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ impl Default for Generics {
336336
where_clause: WhereClause {
337337
id: DUMMY_NODE_ID,
338338
predicates: Vec::new(),
339+
span: DUMMY_SP,
339340
},
340341
span: DUMMY_SP,
341342
}
@@ -347,6 +348,7 @@ impl Default for Generics {
347348
pub struct WhereClause {
348349
pub id: NodeId,
349350
pub predicates: Vec<WherePredicate>,
351+
pub span: Span,
350352
}
351353

352354
/// A single predicate in a `where` clause

src/libsyntax/fold.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -737,14 +737,15 @@ pub fn noop_fold_generics<T: Folder>(Generics {ty_params, lifetimes, where_claus
737737
}
738738

739739
pub fn noop_fold_where_clause<T: Folder>(
740-
WhereClause {id, predicates}: WhereClause,
740+
WhereClause {id, predicates, span}: WhereClause,
741741
fld: &mut T)
742742
-> WhereClause {
743743
WhereClause {
744744
id: fld.new_id(id),
745745
predicates: predicates.move_map(|predicate| {
746746
fld.fold_where_predicate(predicate)
747-
})
747+
}),
748+
span: span,
748749
}
749750
}
750751

src/libsyntax/parse/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,7 @@ mod tests {
892892
where_clause: ast::WhereClause {
893893
id: ast::DUMMY_NODE_ID,
894894
predicates: Vec::new(),
895+
span: syntax_pos::DUMMY_SP,
895896
},
896897
span: syntax_pos::DUMMY_SP,
897898
},

src/libsyntax/parse/parser.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4302,6 +4302,7 @@ impl<'a> Parser<'a> {
43024302
where_clause: WhereClause {
43034303
id: ast::DUMMY_NODE_ID,
43044304
predicates: Vec::new(),
4305+
span: syntax_pos::DUMMY_SP,
43054306
},
43064307
span: span_lo.to(self.prev_span),
43074308
})
@@ -4369,11 +4370,13 @@ impl<'a> Parser<'a> {
43694370
let mut where_clause = WhereClause {
43704371
id: ast::DUMMY_NODE_ID,
43714372
predicates: Vec::new(),
4373+
span: syntax_pos::DUMMY_SP,
43724374
};
43734375

43744376
if !self.eat_keyword(keywords::Where) {
43754377
return Ok(where_clause);
43764378
}
4379+
let lo = self.prev_span;
43774380

43784381
// This is a temporary future proofing.
43794382
//
@@ -4451,6 +4454,7 @@ impl<'a> Parser<'a> {
44514454
}
44524455
}
44534456

4457+
where_clause.span = lo.to(self.prev_span);
44544458
Ok(where_clause)
44554459
}
44564460

src/libsyntax/print/pprust.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,6 +1041,7 @@ impl<'a> State<'a> {
10411041
where_clause: ast::WhereClause {
10421042
id: ast::DUMMY_NODE_ID,
10431043
predicates: Vec::new(),
1044+
span: syntax_pos::DUMMY_SP,
10441045
},
10451046
span: syntax_pos::DUMMY_SP,
10461047
};
@@ -2983,6 +2984,7 @@ impl<'a> State<'a> {
29832984
where_clause: ast::WhereClause {
29842985
id: ast::DUMMY_NODE_ID,
29852986
predicates: Vec::new(),
2987+
span: syntax_pos::DUMMY_SP,
29862988
},
29872989
span: syntax_pos::DUMMY_SP,
29882990
};

src/libsyntax_ext/deriving/generic/ty.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ fn mk_generics(lifetimes: Vec<ast::LifetimeDef>, ty_params: Vec<ast::TyParam>, s
216216
where_clause: ast::WhereClause {
217217
id: ast::DUMMY_NODE_ID,
218218
predicates: Vec::new(),
219+
span: span,
219220
},
220221
span: span,
221222
}

0 commit comments

Comments
 (0)