pub fn expr_block(&self, b: P<ast::Block>) -> P<ast::Expr> {
self.expr(b.span, ast::ExprKind::Block(b, None))
}
- pub fn field_imm(&self, span: Span, ident: Ident, e: P<ast::Expr>) -> ast::Field {
- ast::Field {
+ pub fn field_imm(&self, span: Span, ident: Ident, e: P<ast::Expr>) -> ast::ExprField {
+ ast::ExprField {
ident: ident.with_span_pos(span),
expr: e,
span,
&self,
span: Span,
path: ast::Path,
- fields: Vec<ast::Field>,
+ fields: Vec<ast::ExprField>,
) -> P<ast::Expr> {
- self.expr(span, ast::ExprKind::Struct(path, fields, ast::StructRest::None))
+ self.expr(
+ span,
+ ast::ExprKind::Struct(P(ast::StructExpr { path, fields, rest: ast::StructRest::None })),
+ )
}
pub fn expr_struct_ident(
&self,
span: Span,
id: Ident,
- fields: Vec<ast::Field>,
+ fields: Vec<ast::ExprField>,
) -> P<ast::Expr> {
self.expr_struct(span, self.path_ident(span, id), fields)
}
&self,
span: Span,
path: ast::Path,
- field_pats: Vec<ast::FieldPat>,
+ field_pats: Vec<ast::PatField>,
) -> P<ast::Pat> {
self.pat(span, PatKind::Struct(path, field_pats, false))
}