summaryrefslogtreecommitdiff
path: root/src/library/scala/reflect/base/Positions.scala
blob: 70412a2f4b382b7894e0fee725825689536987bf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package scala.reflect
package base

/**
 * Defines the type hierachy for positions. 
 *
 * @see [[scala.reflect]] for a description on how the class hierarchy is encoded here.
 */
trait Positions {
  self: Universe =>

  /** The base type for all positions of tree nodes in source files. */
  type Position >: Null <: Attachments { type Pos = Position }

  /** A tag that preserves the identity of the `Position` abstract type from erasure.
   *  Can be used for pattern matching, instance tests, serialization and likes.
   */
  implicit val PositionTag: ClassTag[Position]

  /** A special "missing" position. */
  val NoPosition: Position
}