pub fn walk_param<'v, V: Visitor<'v>>(visitor: &mut V, param: &'v Param<'v>) {
visitor.visit_id(param.hir_id);
visitor.visit_pat(¶m.pat);
- walk_list!(visitor, visit_attribute, ¶m.attrs);
+ walk_list!(visitor, visit_attribute, param.attrs);
}
pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item<'v>) {
pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat<'v>) {
visitor.visit_id(pattern.hir_id);
match pattern.kind {
- PatKind::TupleStruct(ref qpath, ref children, _) => {
+ PatKind::TupleStruct(ref qpath, children, _) => {
visitor.visit_qpath(qpath, pattern.hir_id, pattern.span);
walk_list!(visitor, visit_pat, children);
}
PatKind::Path(ref qpath) => {
visitor.visit_qpath(qpath, pattern.hir_id, pattern.span);
}
- PatKind::Struct(ref qpath, ref fields, _) => {
+ PatKind::Struct(ref qpath, fields, _) => {
visitor.visit_qpath(qpath, pattern.hir_id, pattern.span);
for field in fields {
visitor.visit_id(field.hir_id);
visitor.visit_pat(&field.pat)
}
}
- PatKind::Or(ref pats) => walk_list!(visitor, visit_pat, pats),
- PatKind::Tuple(ref tuple_elements, _) => {
+ PatKind::Or(pats) => walk_list!(visitor, visit_pat, pats),
+ PatKind::Tuple(tuple_elements, _) => {
walk_list!(visitor, visit_pat, tuple_elements);
}
PatKind::Box(ref subpattern) | PatKind::Ref(ref subpattern, _) => {
visitor.visit_expr(upper_bound)
}
PatKind::Wild => (),
- PatKind::Slice(ref prepatterns, ref slice_pattern, ref postpatterns) => {
+ PatKind::Slice(prepatterns, ref slice_pattern, postpatterns) => {
walk_list!(visitor, visit_pat, prepatterns);
walk_list!(visitor, visit_pat, slice_pattern);
walk_list!(visitor, visit_pat, postpatterns);
pub fn walk_block<'v, V: Visitor<'v>>(visitor: &mut V, block: &'v Block<'v>) {
visitor.visit_id(block.hir_id);
- walk_list!(visitor, visit_stmt, &block.stmts);
+ walk_list!(visitor, visit_stmt, block.stmts);
walk_list!(visitor, visit_expr, &block.expr);
}
walk_list!(visitor, visit_attribute, expression.attrs.iter());
match expression.kind {
ExprKind::Box(ref subexpression) => visitor.visit_expr(subexpression),
- ExprKind::Array(ref subexpressions) => {
+ ExprKind::Array(subexpressions) => {
walk_list!(visitor, visit_expr, subexpressions);
}
ExprKind::Repeat(ref element, ref count) => {
visitor.visit_expr(element);
visitor.visit_anon_const(count)
}
- ExprKind::Struct(ref qpath, ref fields, ref optional_base) => {
+ ExprKind::Struct(ref qpath, fields, ref optional_base) => {
visitor.visit_qpath(qpath, expression.hir_id, expression.span);
for field in fields {
visitor.visit_id(field.hir_id);
}
walk_list!(visitor, visit_expr, optional_base);
}
- ExprKind::Tup(ref subexpressions) => {
+ ExprKind::Tup(subexpressions) => {
walk_list!(visitor, visit_expr, subexpressions);
}
- ExprKind::Call(ref callee_expression, ref arguments) => {
+ ExprKind::Call(ref callee_expression, arguments) => {
visitor.visit_expr(callee_expression);
walk_list!(visitor, visit_expr, arguments);
}
- ExprKind::MethodCall(ref segment, _, ref arguments) => {
+ ExprKind::MethodCall(ref segment, _, arguments) => {
visitor.visit_path_segment(expression.span, segment);
walk_list!(visitor, visit_expr, arguments);
}
walk_list!(visitor, visit_label, opt_label);
visitor.visit_block(block);
}
- ExprKind::Match(ref subexpression, ref arms, _) => {
+ ExprKind::Match(ref subexpression, arms, _) => {
visitor.visit_expr(subexpression);
walk_list!(visitor, visit_arm, arms);
}
walk_list!(visitor, visit_expr, optional_expression);
}
ExprKind::InlineAsm(ref asm) => {
- walk_list!(visitor, visit_expr, &asm.outputs_exprs);
- walk_list!(visitor, visit_expr, &asm.inputs_exprs);
+ walk_list!(visitor, visit_expr, asm.outputs_exprs);
+ walk_list!(visitor, visit_expr, asm.inputs_exprs);
}
ExprKind::Yield(ref subexpression, _) => {
visitor.visit_expr(subexpression);
}
}
visitor.visit_expr(&arm.body);
- walk_list!(visitor, visit_attribute, &arm.attrs);
+ walk_list!(visitor, visit_attribute, arm.attrs);
}
pub fn walk_vis<'v, V: Visitor<'v>>(visitor: &mut V, vis: &'v Visibility) {
hir_to_node_id: FxHashMap<HirId, NodeId>,
}
-struct ParentHirIterator<'map> {
+struct ParentHirIterator<'map, 'hir> {
current_id: HirId,
- map: &'map Map<'map>,
+ map: &'map Map<'hir>,
}
-impl<'map> ParentHirIterator<'map> {
- fn new(current_id: HirId, map: &'map Map<'map>) -> ParentHirIterator<'map> {
+impl<'map, 'hir> ParentHirIterator<'map, 'hir> {
+ fn new(current_id: HirId, map: &'map Map<'hir>) -> ParentHirIterator<'map, 'hir> {
ParentHirIterator { current_id, map }
}
}
-impl<'map> Iterator for ParentHirIterator<'map> {
- type Item = (HirId, Node<'map>);
+impl<'map, 'hir> Iterator for ParentHirIterator<'map, 'hir> {
+ type Item = (HirId, Node<'hir>);
fn next(&mut self) -> Option<Self::Item> {
if self.current_id == CRATE_HIR_ID {
///
/// Used by error reporting when there's a type error in a match arm caused by the `match`
/// expression needing to be unit.
- pub fn get_match_if_cause(&self, hir_id: HirId) -> Option<&Expr<'hir>> {
+ pub fn get_match_if_cause(&self, hir_id: HirId) -> Option<&'hir Expr<'hir>> {
for (_, node) in ParentHirIterator::new(hir_id, &self) {
match node {
Node::Item(_) | Node::ForeignItem(_) | Node::TraitItem(_) | Node::ImplItem(_) => {
use syntax_pos::{self, BytePos, FileName};
use crate::hir;
-use crate::hir::ptr::P;
use crate::hir::{GenericArg, GenericParam, GenericParamKind};
use crate::hir::{GenericBound, PatKind, RangeEnd, TraitBoundModifier};
self.print_inner_attributes(attrs);
- for st in &blk.stmts {
+ for st in blk.stmts {
self.print_stmt(st);
}
if let Some(ref expr) = blk.expr {
&mut self,
qpath: &hir::QPath,
fields: &[hir::Field<'_>],
- wth: &Option<P<hir::Expr<'_>>>,
+ wth: &Option<&'hir hir::Expr<'_>>,
) {
self.print_qpath(qpath, true);
self.s.word("{");
hir::ExprKind::Repeat(ref element, ref count) => {
self.print_expr_repeat(&element, count);
}
- hir::ExprKind::Struct(ref qpath, ref fields, ref wth) => {
- self.print_expr_struct(qpath, &fields[..], wth);
+ hir::ExprKind::Struct(ref qpath, fields, ref wth) => {
+ self.print_expr_struct(qpath, fields, wth);
}
hir::ExprKind::Tup(ref exprs) => {
self.print_expr_tup(exprs);
self.s.space();
self.print_block(&blk);
}
- hir::ExprKind::Match(ref expr, ref arms, _) => {
+ hir::ExprKind::Match(ref expr, arms, _) => {
self.cbox(INDENT_UNIT);
self.ibox(INDENT_UNIT);
self.word_nbsp("match");