summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/runtime/Memoizer.scala
blob: 4c1b82ae6d702749d0042e952341edae40bda0b7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
  }
}