diff options
author | Martin Odersky <odersky@gmail.com> | 2011-08-24 17:06:04 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-08-24 17:06:04 +0000 |
commit | ce0df1e1bf7a478398fbd6915d99c763c564d182 (patch) | |
tree | 2a858810def8f334e268c90026d70a4611020fb9 /src | |
parent | e1a9fd9a7a3092e38915425adbd308b48e48e363 (diff) | |
download | scala-ce0df1e1bf7a478398fbd6915d99c763c564d182.tar.gz scala-ce0df1e1bf7a478398fbd6915d99c763c564d182.tar.bz2 scala-ce0df1e1bf7a478398fbd6915d99c763c564d182.zip |
Class that can be used for memoizing types in r...
Class that can be used for memoizing types in reified trees
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/reflect/runtime/Memoizer.scala | 15 |
1 files changed, 15 insertions, 0 deletions
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 + } +} |