Shrink smallvecs

This commit is contained in:
Richard Feldman 2019-06-12 22:02:34 -04:00
parent 20ce0548cc
commit 34b9df8281
2 changed files with 4 additions and 4 deletions

View file

@ -172,7 +172,7 @@ fn eval_apply(expr: Evaluated, args: Vec<Expr>, vars: &Scope) -> Evaluated {
} }
#[inline(always)] #[inline(always)]
fn eval_closure(args: Vec<Evaluated>, arg_patterns: SmallVec<[Pattern; 4]>, vars: &Scope) fn eval_closure(args: Vec<Evaluated>, arg_patterns: SmallVec<[Pattern; 2]>, vars: &Scope)
-> Result<Scope, expr::Problem> -> Result<Scope, expr::Problem>
{ {
if arg_patterns.len() == args.len() { if arg_patterns.len() == args.len() {
@ -292,7 +292,7 @@ fn eval_operator(Evaluated(left_expr): &Evaluated, op: Operator, Evaluated(right
} }
#[inline(always)] #[inline(always)]
fn eval_case (condition: Evaluated, branches: SmallVec<[(Pattern, Box<Expr>); 4]>, vars: &Scope) -> Evaluated { fn eval_case (condition: Evaluated, branches: SmallVec<[(Pattern, Box<Expr>); 2]>, vars: &Scope) -> Evaluated {
let Evaluated(ref evaluated_expr) = condition; let Evaluated(ref evaluated_expr) = condition;
for (pattern, definition) in branches { for (pattern, definition) in branches {

View file

@ -19,7 +19,7 @@ pub enum Expr {
Func(Ident, Vec<Expr>), Func(Ident, Vec<Expr>),
Apply(Box<Expr>, Vec<Expr>), Apply(Box<Expr>, Vec<Expr>),
Operator(Box<Expr>, Operator, Box<Expr>), Operator(Box<Expr>, Operator, Box<Expr>),
Closure(SmallVec<[Pattern; 4]>, Box<Expr>), Closure(SmallVec<[Pattern; 2]>, Box<Expr>),
// Sum Types // Sum Types
ApplyVariant(String, Option<Vec<Expr>>), ApplyVariant(String, Option<Vec<Expr>>),
@ -29,7 +29,7 @@ pub enum Expr {
// Conditionals // Conditionals
If(Box<Expr>, Box<Expr>, Box<Expr>), If(Box<Expr>, Box<Expr>, Box<Expr>),
Case(Box<Expr>, SmallVec<[(Pattern, Box<Expr>); 4]>), Case(Box<Expr>, SmallVec<[(Pattern, Box<Expr>); 2]>),
// Error // Error
Error(Problem), Error(Problem),