fn lower_arg_source(&mut self, source: &ArgSource) -> hir::ArgSource {
match source {
- ArgSource::Normal | ArgSource::Recovery => hir::ArgSource::Normal,
+ ArgSource::Normal => hir::ArgSource::Normal,
ArgSource::AsyncFn(pat) => hir::ArgSource::AsyncFn(self.lower_pat(pat)),
}
}
Normal,
/// Argument from `async fn` lowering, contains the original binding pattern.
AsyncFn(P<Pat>),
- /// Placeholder argument caused by incorrect syntax. Used to silence unecessary errors.
- Recovery,
}
/// Alternative representation for `Arg`s describing `self` parameter of methods.
pub fn noop_visit_arg_source<T: MutVisitor>(source: &mut ArgSource, vis: &mut T) {
match source {
- ArgSource::Normal | ArgSource::Recovery => {},
+ ArgSource::Normal => {},
ArgSource::AsyncFn(pat) => vis.visit_pat(pat),
}
}
span: ident.span,
id: ast::DUMMY_NODE_ID
};
- Arg { ty: P(ty), pat: pat, id: ast::DUMMY_NODE_ID, source: ast::ArgSource::Recovery }
+ Arg { ty: P(ty), pat: pat, id: ast::DUMMY_NODE_ID, source: ast::ArgSource::Normal }
}
#[derive(Copy, Clone, Debug)]
// Replace duplicated recovered arguments with `_` pattern to avoid unecessary errors.
let mut seen_inputs = FxHashSet::default();
for input in fn_inputs.iter_mut() {
- let opt_ident = if let (PatKind::Ident(_, ident, _), ast::ArgSource::Recovery) = (
- &input.pat.node, &input.source,
+ let opt_ident = if let (PatKind::Ident(_, ident, _), TyKind::Err) = (
+ &input.pat.node, &input.ty,
) {
Some(*ident)
} else {