trait ContextTrees extends AnyRef
- Alphabetic
- By Inheritance
- ContextTrees
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
- type Context = (analyzer)#Context
-
class
ContextTree extends AnyRef
A context tree contains contexts that are indexed by positions.
A context tree contains contexts that are indexed by positions. It satisfies the following properties:
- All context come from compiling the same unit.
2. Child contexts have parent contexts in their outer chain.
3. The
pos
field of a context is the same ascontext.tree.pos
, unless that position is transparent. In that case,pos
equals the position of one of the solid descendants ofcontext.tree
. 4. Children of a context have non-overlapping increasing positions. 5. No context in the tree has a transparent position.
- All context come from compiling the same unit.
2. Child contexts have parent contexts in their outer chain.
3. The
- type Contexts = ArrayBuffer[Global.ContextTree]
Value Members
- lazy val NoContext: (analyzer)#NoContext.type
-
def
addContext(contexts: Global.Contexts, context: Global.Context, cpos: Global.Position): Unit
Insert a context with non-transparent position
cpos
at correct position into a buffer of context trees. -
def
addContext(contexts: Global.Contexts, context: Global.Context): Unit
Insert a context at correct position into a buffer of context trees.
Insert a context at correct position into a buffer of context trees. If the
context
has a transparent position, add it multiple times at the positions of all its solid descendant trees. -
def
locateContext(contexts: Global.Contexts, pos: Global.Position): Option[Global.Context]
Returns the most precise context possible for the given
pos
.Returns the most precise context possible for the given
pos
.It looks for the finest ContextTree containing
pos
, and then look inside this ContextTree for a child ContextTree located immediately beforepos
. If such a child exists, returns its context, otherwise returns the context of the parent ContextTree.This is required to always return a context which contains the all the imports declared up to
pos
(see scala/bug#7280 for a test case).Can return None if
pos
is before any valid Scala code. -
def
locateContextTree(contexts: Global.Contexts, pos: Global.Position): Option[Global.ContextTree]
Returns the ContextTree containing
pos
, or the ContextTree positioned just beforepos
, or None ifpos
is located before all ContextTrees.
The Scala compiler and reflection APIs.