From ce0df1e1bf7a478398fbd6915d99c763c564d182 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 24 Aug 2011 17:06:04 +0000 Subject: Class that can be used for memoizing types in r... Class that can be used for memoizing types in reified trees --- src/compiler/scala/reflect/runtime/Memoizer.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/compiler/scala/reflect/runtime/Memoizer.scala diff --git a/src/compiler/scala/reflect/runtime/Memoizer.scala b/src/compiler/scala/reflect/runtime/Memoizer.scala new file mode 100644 index 0000000000..4c1b82ae6d --- /dev/null +++ b/src/compiler/scala/reflect/runtime/Memoizer.scala @@ -0,0 +1,15 @@ +package scala.reflect.runtime + +import collection.mutable.ArrayBuffer +import Mirror.Type + +/** Class that can be used for memoizing types in reified trees */ +class Memoizer { + private val mem = new ArrayBuffer[Mirror.Type] + def get(n: Int): Type = mem(n) + def add(n: Int, tpe: Type): Type = { + while (mem.length <= n) mem += null + mem(n) = tpe + tpe + } +} -- cgit v1.2.3