diff --git a/src/main/scala/leon/purescala/Common.scala b/src/main/scala/leon/purescala/Common.scala index fa59621765b9269ac361bbe075608d63ec151530..2112689c675b74c337a1e1b0af21b7cf1b40cca7 100644 --- a/src/main/scala/leon/purescala/Common.scala +++ b/src/main/scala/leon/purescala/Common.scala @@ -13,12 +13,6 @@ object Common { abstract class Tree extends Positioned with Serializable { def copiedFrom(o: Tree): this.type = { setPos(o) - (this, o) match { - // do not force if already set - case (t1: MutableTyped, t2: Typed) if !t1.isTyped => - t1.setType(t2.getType) - case _ => - } this } diff --git a/src/main/scala/leon/purescala/TypeTrees.scala b/src/main/scala/leon/purescala/TypeTrees.scala index 1397295069ca652083628defe23bf9f9e14c3fb8..bad181324e154badae5a9acf61acc2d15cd26f4d 100644 --- a/src/main/scala/leon/purescala/TypeTrees.scala +++ b/src/main/scala/leon/purescala/TypeTrees.scala @@ -11,30 +11,11 @@ object TypeTrees { import Definitions._ import TypeTreeOps._ - /** - * HasType indicates that structure is typed - * - * setType not necessarily defined though - */ trait Typed { def getType: TypeTree def isTyped : Boolean = (getType != Untyped) } - trait MutableTyped extends Typed { - self => - - private var _type: Option[TypeTree] = None - - def getType: TypeTree = _type getOrElse Untyped - - def setType(tt: TypeTree): self.type = _type match { - case None => _type = Some(tt); this - case Some(o) if o != tt => scala.sys.error("Resetting type information! Type [" + o + "] is modified to [" + tt) - case _ => this - } - } - class TypeErrorException(msg: String) extends Exception(msg) object TypeErrorException {