diff options
Diffstat (limited to 'src/dotty/tools/dotc/core/tasty/TastyName.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/tasty/TastyName.scala | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/tasty/TastyName.scala b/src/dotty/tools/dotc/core/tasty/TastyName.scala new file mode 100644 index 000000000..6d37c8bca --- /dev/null +++ b/src/dotty/tools/dotc/core/tasty/TastyName.scala @@ -0,0 +1,30 @@ +package dotty.tools +package dotc +package core +package tasty + +import core.Names.TermName +import collection.mutable + +abstract class TastyName + +object TastyName { + + case class NameRef(val index: Int) extends AnyVal + + case class Simple(name: TermName) extends TastyName + case class Qualified(qualified: NameRef, selector: NameRef) extends TastyName + case class Signed(original: NameRef, params: List[NameRef], result: NameRef) extends TastyName + case class Expanded(prefix: NameRef, original: NameRef) extends TastyName + case class ModuleClass(module: NameRef) extends TastyName + case class SuperAccessor(accessed: NameRef) extends TastyName + case class DefaultGetter(method: NameRef, num: Int) extends TastyName + case class Shadowed(original: NameRef) extends TastyName + + class Table extends (NameRef => TastyName) { + private val names = new mutable.ArrayBuffer[TastyName] + def add(name: TastyName) = names += name + def apply(ref: NameRef) = names(ref.index) + def contents: Iterable[TastyName] = names + } +} |