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]
class Block[T]
class XMLBlock
class CaseDef[T]
class DenotingTree[T]
trait DefTree[T]
class NamedDefTree[T]
class Bind[T]
class MemberDef[T]
class TypeDef[T]
class ValOrDefDef[T]
class DefDef[T]
class ValDef[T]
class EmptyValDef[T]
trait ValOrTypeDef[T]
class ModuleDef
class Template[T]
class Export[T]
class Import[T]
class NameTree[T]
class Labeled[T]
class RefTree[T]
class Ident[T]
object EmptyTypeIdent.type
class Select[T]
class SelectWithSig[T]
class This[T]
class TypeTree[T]
class Hole[T]
class Inlined[T]
class Literal[T]
class NamedArg[T]
class New[T]
trait PatternTree[T]
class Alternative[T]
class UnApply[T]
class ProxyTree[T]
class Annotated[T]
class GenericApply[T]
class Apply[T]
class TypeApply[T]
class PackageDef[T]
class Super[T]
class Typed[T]
class Parens
class SeqLiteral[T]
trait TermTree[T]
class Assign[T]
class Closure[T]
class If[T]
class InlineIf[T]
class Match[T]
class InlineMatch[T]
class Return[T]
class Try[T]
class WhileDo[T]
class Thicket[T]
class EmptyTree[T]
trait TypTree[T]
class MatchTypeTree[T]
class Function
class GenAlias
class GenFrom
class MacroTree
class OpTree
class InfixOp
class PostfixOp
class PrefixOp
class Tuple
class Mod
class Abstract
class Erased
class Final
class Given
class Implicit
class Infix
class Inline
class Lazy
class Opaque
class Open
class Override
class Private
class Protected
class Sealed
class Var

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.

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
Inherited from:
SrcPos