Positioned

abstract class Positioned(implicit @constructorOnly src: SourceFile) extends SrcPos with Product with Cloneable

A base class for things that have positions (currently: modifiers and trees)

Companion
object
trait Cloneable
trait Product
trait Equals
trait SrcPos
class Object
trait Matchable
class Any
class Tree[T]
trait TypTree[T]
class TypeTree[T]
trait TermTree[T]
class This[T]
class Super[T]
class Apply[T]
class TypeApply[T]
class Literal[T]
class New[T]
class Typed[T]
class Assign[T]
class If[T]
class InlineIf[T]
class Closure[T]
class Match[T]
class InlineMatch[T]
class Return[T]
class WhileDo[T]
class Try[T]
trait PatternTree[T]
class Bind[T]
class Alternative[T]
class UnApply[T]
class NameTree[T]
class RefTree[T]
class Ident[T]
class Select[T]
class MemberDef[T]
class ValOrDefDef[T]
class ValDef[T]
class EmptyValDef[T]
class DefDef[T]
class TypeDef[T]
class ModuleDef
class Labeled[T]
trait DefTree[T]
class Template[T]
class Import[T]
class Export[T]
class ProxyTree[T]
class PackageDef[T]
class Annotated[T]
class Parens
class NamedArg[T]
class Block[T]
class XMLBlock
class CaseDef[T]
class SeqLiteral[T]
class Inlined[T]
class Thicket[T]
class EmptyTree[T]
class OpTree
class InfixOp
class PostfixOp
class PrefixOp
class Function
class Tuple
class GenFrom
class GenAlias
class MacroTree
class Hole
class Mod
class Private
class Protected
class Var
class Implicit
class Given
class Erased
class Final
class Sealed
class Opaque
class Open
class Override
class Abstract
class Lazy
class Inline
class Infix

Value members

Concrete methods

def checkPos(nonOverlapping: Boolean)(using Context): Unit

Check that all positioned items in this tree satisfy the following conditions:

Check that all positioned items in this tree satisfy the following conditions:

  • Parent spans contain child spans
  • If item is a non-empty tree, it has a position

Clone this node but assign it a fresh id which marks it as a node in file.

Clone this node but assign it a fresh id which marks it as a node in file.

def envelope(src: SourceFile, startSpan: Span): Span

The union of startSpan and the spans of all positioned children that have the same source as this node, except that Inlined nodes only consider their call child.

The union of startSpan and the spans of all positioned children that have the same source as this node, except that Inlined nodes only consider their call child.

Side effect: Any descendants without spans have but with the same source as this node have their span set to the end position of the envelope of all children to the left, or, if that one does not exist, to the start position of the envelope of all children to the right.

def span: Span

The span part of the item's position

The span part of the item's position

def span_=(span: Span): Unit
final def srcPos: SrcPos

This positioned item, widened to SrcPos. Used to make clear we only need the position, typically for error reporting.

This positioned item, widened to SrcPos. Used to make clear we only need the position, typically for error reporting.

A unique identifier in case -Yshow-tree-ids, or -Ydebug-tree-with-id is set, -1 otherwise.

A unique identifier in case -Yshow-tree-ids, or -Ydebug-tree-with-id is set, -1 otherwise.

def withSpan(span: Span): Positioned

A positioned item like this one with given span. If the positioned item is source-derived, a clone is returned. If the positioned item is synthetic, the position is updated destructively and the item itself is returned.

A positioned item like this one with given span. If the positioned item is source-derived, a clone is returned. If the positioned item is synthetic, the position is updated destructively and the item itself is returned.

Inherited methods

def canEqual(that: Any): Boolean
Inherited from
Equals
def endPos(using ctx: Context): SourcePosition
Inherited from
SrcPos
def focus(using ctx: Context): SourcePosition
Inherited from
SrcPos
def line(using ctx: Context): Int
Inherited from
SrcPos
Inherited from
Product
def productElement(n: Int): Any
Inherited from
Product
Inherited from
Product
Inherited from
Product
Inherited from
Product
def startPos(using ctx: Context): SourcePosition
Inherited from
SrcPos

Concrete fields