trait ContextTrees extends AnyRef
- Alphabetic
- By Inheritance
- ContextTrees
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
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
posfield of a context is the same ascontext.tree.pos, unless that position is transparent. In that case,posequals 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
cposat 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
contexthas 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
posis 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 ifposis located before all ContextTrees.
The Scala compiler and reflection APIs.