use recrod terminology for hir::Pat

This commit is contained in:
Aleksey Kladov 2019-09-03 08:59:09 +03:00
parent db69d134fb
commit 48ffbf29b7
3 changed files with 7 additions and 8 deletions

View file

@ -472,7 +472,7 @@ pub enum Pat {
Missing,
Wild,
Tuple(Vec<PatId>),
Struct {
Record {
path: Option<Path>,
args: Vec<RecordFieldPat>,
// FIXME: 'ellipsis' option
@ -518,7 +518,7 @@ impl Pat {
let total_iter = prefix.iter().chain(rest.iter()).chain(suffix.iter());
total_iter.copied().for_each(f);
}
Pat::Struct { args, .. } => {
Pat::Record { args, .. } => {
args.iter().map(|f| f.pat).for_each(f);
}
}

View file

@ -20,9 +20,8 @@ use crate::{
};
use super::{
ArithOp, Array, BinaryOp, BindingAnnotation, Body, BodySourceMap, CmpOp, Expr, ExprId,
Literal, LogicOp, MatchArm, Ordering, Pat, PatId, PatPtr, RecordFieldPat, RecordLitField,
Statement,
ArithOp, Array, BinaryOp, BindingAnnotation, Body, BodySourceMap, CmpOp, Expr, ExprId, Literal,
LogicOp, MatchArm, Ordering, Pat, PatId, PatPtr, RecordFieldPat, RecordLitField, Statement,
};
pub(crate) struct ExprCollector<DB> {
@ -504,7 +503,7 @@ where
});
fields.extend(iter);
Pat::Struct { path, args: fields }
Pat::Record { path, args: fields }
}
// FIXME: implement

View file

@ -749,7 +749,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
let is_non_ref_pat = match &body[pat] {
Pat::Tuple(..)
| Pat::TupleStruct { .. }
| Pat::Struct { .. }
| Pat::Record { .. }
| Pat::Range { .. }
| Pat::Slice { .. } => true,
// FIXME: Path/Lit might actually evaluate to ref, but inference is unimplemented.
@ -809,7 +809,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
Pat::TupleStruct { path: ref p, args: ref subpats } => {
self.infer_tuple_struct_pat(p.as_ref(), subpats, expected, default_bm)
}
Pat::Struct { path: ref p, args: ref fields } => {
Pat::Record { path: ref p, args: ref fields } => {
self.infer_record_pat(p.as_ref(), fields, expected, default_bm, pat)
}
Pat::Path(path) => {