1
Fork 0

Use Lit rather than P<Lit> in hir::ExprKind.

It's simpler and makes some benchmark run up to 1% faster. It also makes
`hir::ExprKind` more like `ast::ExprKind` (which underwent the
equivalent change in #55777).
This commit is contained in:
Nicholas Nethercote 2019-01-16 13:51:24 +11:00
parent e2f221c759
commit ae4b14e837
2 changed files with 2 additions and 2 deletions

View file

@ -3775,7 +3775,7 @@ impl<'a> LoweringContext<'a> {
let ohs = P(self.lower_expr(ohs)); let ohs = P(self.lower_expr(ohs));
hir::ExprKind::Unary(op, ohs) hir::ExprKind::Unary(op, ohs)
} }
ExprKind::Lit(ref l) => hir::ExprKind::Lit(P((*l).clone())), ExprKind::Lit(ref l) => hir::ExprKind::Lit((*l).clone()),
ExprKind::Cast(ref expr, ref ty) => { ExprKind::Cast(ref expr, ref ty) => {
let expr = P(self.lower_expr(expr)); let expr = P(self.lower_expr(expr));
hir::ExprKind::Cast(expr, self.lower_ty(ty, ImplTraitContext::disallowed())) hir::ExprKind::Cast(expr, self.lower_ty(ty, ImplTraitContext::disallowed()))

View file

@ -1466,7 +1466,7 @@ pub enum ExprKind {
/// A unary operation (For example: `!x`, `*x`) /// A unary operation (For example: `!x`, `*x`)
Unary(UnOp, P<Expr>), Unary(UnOp, P<Expr>),
/// A literal (For example: `1`, `"foo"`) /// A literal (For example: `1`, `"foo"`)
Lit(P<Lit>), Lit(Lit),
/// A cast (`foo as f64`) /// A cast (`foo as f64`)
Cast(P<Expr>, P<Ty>), Cast(P<Expr>, P<Ty>),
Type(P<Expr>, P<Ty>), Type(P<Expr>, P<Ty>),