From 792cac277cd70add0a902cb4ce6b45e8401a5c64 Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Mon, 28 Jun 2010 22:03:50 +0000 Subject: [PATCH] --- src/purescala/Trees.scala | 7 +++++++ testcases/RedBlack.scala | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/purescala/Trees.scala b/src/purescala/Trees.scala index 390728610..c0a61240a 100644 --- a/src/purescala/Trees.scala +++ b/src/purescala/Trees.scala @@ -12,6 +12,13 @@ object Trees { override def toString: String = PrettyPrinter(this) } + /* Like vals */ + case class Let(binder: Identifier, expression: Expr) extends Expr { + val et = expression.getType + if(et != NoType) + setType(et) + } + /* Control flow */ case class FunctionInvocation(funDef: FunDef, args: Seq[Expr]) extends Expr case class IfExpr(cond: Expr, then: Expr, elze: Expr) extends Expr diff --git a/testcases/RedBlack.scala b/testcases/RedBlack.scala index d05e0bc5a..d2f1a1f8e 100644 --- a/testcases/RedBlack.scala +++ b/testcases/RedBlack.scala @@ -53,8 +53,11 @@ object RedBlack { def makeBlack(t: Tree) = { require(t != EmptyTree()) - val Node(_, left, x, right) = t - Node(Black(), left, x, right) + //val Node(_, left, x, right) = t + //Node(Black(), left, x, right) + t match { + case Node(_, left, x, right) => Node(Black(), left, x, right) + } } ensuring ((x:Tree) => x match {case Node(Black(), _, _, _) => true; case _ => false}) def ins_(t: Tree, e: Int): Tree = t match { -- GitLab