object Trees
- Alphabetic
- By Inheritance
- Trees
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- sealed abstract class AnyFieldDef extends MemberDef
-
sealed
case class
Apply(flags: ApplyFlags, receiver: Tree, method: MethodIdent, args: List[Tree])(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
Apply an instance method with dynamic dispatch (the default).
-
sealed
case class
ApplyDynamicImport(flags: ApplyFlags, className: ClassName, method: MethodIdent, args: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
Apply a static method via dynamic import.
- final class ApplyFlags extends AnyVal
-
sealed
case class
ApplyStatic(flags: ApplyFlags, className: ClassName, method: MethodIdent, args: List[Tree])(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
Apply a static method.
-
sealed
case class
ApplyStatically(flags: ApplyFlags, receiver: Tree, className: ClassName, method: MethodIdent, args: List[Tree])(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
Apply an instance method with static dispatch (e.g., super calls).
-
sealed
case class
ApplyTypedClosure(flags: ApplyFlags, fun: Tree, args: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
Apply a typed closure
Apply a typed closure
The given
fun
must have a closure type.The arguments' types must match (be subtypes of) the parameter types of the closure type.
The
tpe
of this node is the result type of the closure type, ornothing
if the latter isnothing
.Evaluation steps are as follows:
- Let
funV
be the result of evaluatingfun
. 2. IffunV
isnullClosure
, trigger an NPE undefined behavior. 3. LetargsV
be the result of evaluatingargs
, in order. 4. InvokefunV
with argumentsargsV
, and return the result.
- Let
- sealed case class ArraySelect(array: Tree, index: Tree)(tpe: Type)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed case class ArrayValue(typeRef: ArrayTypeRef, elems: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class AsInstanceOf(expr: Tree, tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class Assign(lhs: AssignLhs, rhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
- sealed trait AssignLhs extends Tree
-
sealed
case class
BinaryOp(op: Code, lhs: Tree, rhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
Binary operation.
Binary operation.
All binary operations follow common evaluation steps:
- Let
lhsValue
be the result of evaluatinglhs
. 2. LetrhsValue
be the result of evaluatingrhs
. 3. Perform an operation that depends onop
,lhsValue
andrhsValue
.
Unless
lhsValue
throws,rhsValue
will therefore always be evaluated, even if the operationop
would throw based only onlhsValue
.The integer dividing operators (
Int_/
,Int_%
,Long_/
andLong_%
) throw anArithmeticException
when their right-hand-side is 0. That exception is not subject to undefined behavior.String_charAt
throws aStringIndexOutOfBoundsException
.The
Class_x
operations take ajl.Class!
as lhs, i.e., a non-nullablejl.Class
.Class_isAssignableFrom
also takes ajl.Class!
as rhs.Class_isInstance
andClass_isAssignableFrom
are pure.Class_cast
throws a CCE if its second argument is non-null and not an instance of the class represented by its first argument.Class_newArray
throws aNegativeArraySizeException
if its second argument is negative and anIllegalArgumentException
if its first argument isclassOf[Unit]
.
Otherwise, binary operations preserve pureness.
- Let
- sealed class Block extends Tree
- sealed case class BooleanLiteral(value: Boolean)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class ByteLiteral(value: Byte)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class CharLiteral(value: Char)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- final class ClassDef extends IRNode
- sealed case class ClassIdent(name: ClassName)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class ClassOf(typeRef: TypeRef)(implicit pos: Position) extends Tree with Literal with Product with Serializable
-
sealed
case class
Closure(flags: ClosureFlags, captureParams: List[ParamDef], params: List[ParamDef], restParam: Option[ParamDef], resultType: Type, body: Tree, captureValues: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
Closure with explicit captures.
Closure with explicit captures.
If
flags.typed
istrue
, this is a typed closure with aClosureType
. In that case,flags.arrow
must betrue
, andrestParam
must beNone
. Typed closures cannot be passed to JavaScript code. This is enforced at the type system level, sinceClosureType
s are not subtypes ofAnyType
. The only meaningful operation one can perform on a typed closure is to call it usingApplyTypedClosure
.If
flags.typed
isfalse
, this is a JavaScript closure with typeAnyNotNullType
. In that case, theptpe
or allparams
andresultType
must all beAnyType
.If
flags.arrow
istrue
, the closure is an Arrow Function (=>
), which does not have athis
parameter, and cannot be constructed (called withnew
). Iffalse
, it is a regular Function (function
), which does have athis
parameter of typeAnyType
. Typed closures are always Arrow functions, since they do not have athis
parameter.If
flags.async
istrue
, it is anasync
closure. Async closures return aPromise
of their body, and can contain JSAwait nodes.flags.typed
andflags.async
cannot both betrue
. - final class ClosureFlags extends AnyVal
-
sealed
case class
CreateJSClass(className: ClassName, captureValues: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
Creates a JavaScript class value.
Creates a JavaScript class value.
- className
Reference to the
ClassDef
for the class definition, which must havejsClassCaptures.nonEmpty
- captureValues
Actual values for the captured parameters (in the
ClassDef
'sjsClassCaptures.get
)
- sealed case class Debugger()(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class DoubleLiteral(value: Double)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class FieldDef(flags: MemberFlags, name: FieldIdent, originalName: OriginalName, ftpe: Type)(implicit pos: Position) extends AnyFieldDef with Product with Serializable
- sealed case class FieldIdent(name: FieldName)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class FloatLiteral(value: Float)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class ForIn(obj: Tree, keyVar: LocalIdent, keyVarOriginalName: OriginalName, body: Tree)(implicit pos: Position) extends Tree with Product with Serializable
-
sealed abstract
class
IRNode extends AnyRef
Base class for all nodes in the IR.
Base class for all nodes in the IR.
Usually, one of the direct subclasses of
IRNode
should be used instead. - sealed case class If(cond: Tree, thenp: Tree, elsep: Tree)(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class IntLiteral(value: Int)(implicit pos: Position) extends Tree with MatchableLiteral with Product with Serializable
- sealed case class IsInstanceOf(expr: Tree, testType: Type)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class JSArrayConstr(items: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
case class
JSAwait(arg: Tree)(implicit pos: Position) extends Tree with Product with Serializable
await arg
.await arg
.This is directly equivalent to a JavaScript
await
expression.If used directly within a Closure node with the
async
flag, this node is always valid. However, when used anywhere else, it is an "orphan" await. Orphan awaits only link when targeting WebAssembly.This is not a
UnaryOp
because of the above strict scoping rule. For example, unless it is orphan to begin with, it is not safe to pull this node out of or into an intervening closure, contrary toUnaryOp
s. -
sealed
case class
JSBinaryOp(op: Code, lhs: Tree, rhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
JavaScript binary operation.
- sealed case class JSConstructorBody(beforeSuper: List[Tree], superCall: JSSuperConstructorCall, afterSuper: List[Tree])(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class JSConstructorDef(flags: MemberFlags, args: List[ParamDef], restParam: Option[ParamDef], body: JSConstructorBody)(optimizerHints: OptimizerHints, version: Version)(implicit pos: Position) extends MemberDef with VersionedMemberDef with Product with Serializable
-
sealed
case class
JSDelete(qualifier: Tree, item: Tree)(implicit pos: Position) extends Tree with Product with Serializable
delete qualifier[item]
- sealed case class JSFieldDef(flags: MemberFlags, name: Tree, ftpe: Type)(implicit pos: Position) extends AnyFieldDef with Product with Serializable
- sealed case class JSFunctionApply(fun: Tree, args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class JSGlobalRef(name: String)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
-
sealed
case class
JSImportCall(arg: Tree)(implicit pos: Position) extends Tree with Product with Serializable
JavaScript dynamic import of the form
import(arg)
.JavaScript dynamic import of the form
import(arg)
.This form is its own node, rather than using something like
JSFunctionApply(JSImport())
because
import
is not a first-class term in JavaScript.ImportCall
is a dedicated syntactic form that cannot be dissociated. -
sealed
case class
JSImportMeta()(implicit pos: Position) extends Tree with Product with Serializable
JavaScript meta-property
import.meta
.JavaScript meta-property
import.meta
.This form is its own node, rather than using something like
JSSelect(JSImport(), StringLiteral("meta"))
because
import
is not a first-class term in JavaScript.import.meta
is a dedicated syntactic form that cannot be dissociated. - sealed case class JSMethodApply(receiver: Tree, method: Tree, args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class JSMethodDef(flags: MemberFlags, name: Tree, args: List[ParamDef], restParam: Option[ParamDef], body: Tree)(optimizerHints: OptimizerHints, version: Version)(implicit pos: Position) extends JSMethodPropDef with Product with Serializable
- sealed abstract class JSMethodPropDef extends MemberDef with VersionedMemberDef
-
sealed abstract
class
JSNativeLoadSpec extends AnyRef
Loading specification for a native JS class or object.
- sealed case class JSNativeMemberDef(flags: MemberFlags, name: MethodIdent, jsNativeLoadSpec: JSNativeLoadSpec)(implicit pos: Position) extends MemberDef with Product with Serializable
- sealed case class JSNew(ctor: Tree, args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
case class
JSNewTarget()(implicit pos: Position) extends Tree with Product with Serializable
JavaScript meta-property
new.target
.JavaScript meta-property
new.target
.This form is its own node, rather than using something like
JSSelect(JSNew(), StringLiteral("target"))
because
new
is not a first-class term in JavaScript.new.target
is a dedicated syntactic form that cannot be dissociated. - sealed case class JSObjectConstr(fields: List[(Tree, Tree)])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class JSPrivateSelect(qualifier: Tree, field: FieldIdent)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed case class JSPropertyDef(flags: MemberFlags, name: Tree, getterBody: Option[Tree], setterArgAndBody: Option[(ParamDef, Tree)])(version: Version)(implicit pos: Position) extends JSMethodPropDef with Product with Serializable
- sealed case class JSSelect(qualifier: Tree, item: Tree)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
-
sealed
case class
JSSpread(items: Tree)(implicit pos: Position) extends IRNode with TreeOrJSSpread with Product with Serializable
...items
, the "spread" operator of ECMAScript 6....items
, the "spread" operator of ECMAScript 6.- items
An Array whose items will be spread (not an arbitrary iterable)
-
sealed
case class
JSSuperConstructorCall(args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
Super constructor call in the constructor of a non-native JS class.
Super constructor call in the constructor of a non-native JS class.
Exactly one such node must appear in the constructor of a non-native JS class, at the top-level (possibly as a direct child of a top-level
Block
). Any other use of this node is invalid.Statements before this node, as well as the
args
, cannot contain anyThis()
node. Statements after this node can useThis()
.After the execution of this node, it is guaranteed that all fields declared in the current class have been created and initialized. Up to that point, accessing any field declared in this class (e.g., through an overridden method called from the super constructor) is undefined behavior.
All in all, the shape of a constructor is therefore:
{ statementsNotUsingThis(); JSSuperConstructorCall(...argsNotUsingThis); statementsThatMayUseThis() }
which currently translates to something of the following shape:
{ statementsNotUsingThis(); super(...argsNotUsingThis); this.privateField1 = 0; this["publicField2"] = false; statementsThatMayUseThis() }
-
sealed
case class
JSSuperMethodCall(superClass: Tree, receiver: Tree, method: Tree, args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
Calls a method inherited from the given
superClass
onreceiver
.Calls a method inherited from the given
superClass
onreceiver
.Intuitively, this corresponds to
superClass.prototype[method].call(receiver, ...args)
but retains more structure at the IR level than using an explicit encoding of the above expression.
Given the non-native JS classes
class Bar extends js.Object class Foo extends Bar
The node
JSSuperBrackerCall(LoadJSConstructor(ClassName("Bar")), receiver, method, args)
which is printed as
super(constructorOf[Bar])::receiver[method](...args)
has the following semantics:
Bar.prototype[method].call(receiver, ...args)
If this happens to be located in an instance method of
Foo
, *and*receiver
happens to beThis()
, this is equivalent to the ES6 statementsuper[method](...args)
-
sealed
case class
JSSuperSelect(superClass: Tree, receiver: Tree, item: Tree)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
Selects a property inherited from the given
superClass
onreceiver
.Selects a property inherited from the given
superClass
onreceiver
.Given the non-native JS classes
class Bar extends js.Object class Foo extends Bar
The node
JSSuperBrackerSelect(LoadJSConstructor(ClassName("Bar")), qualifier, item)
which is printed as
super(constructorOf[Bar])::qualifier[item]
has the semantics of an ES6 super reference
super[item]
as if it were in an instance method of
Foo
withqualifier
as thethis
value. - sealed case class JSTypeOfGlobalRef(globalRef: JSGlobalRef)(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
case class
JSUnaryOp(op: Code, lhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
JavaScript unary operation.
- sealed case class Labeled(label: LabelName, tpe: Type, body: Tree)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class LinkTimeProperty(name: String)(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
trait
Literal extends Tree
Marker for literals.
Marker for literals. Literals are always pure.
All
Literal
s can be compared for equality. The equality does not take thepos
into account. -
sealed
case class
LoadJSConstructor(className: ClassName)(implicit pos: Position) extends Tree with Product with Serializable
Loads the constructor of a JS class (native or not).
Loads the constructor of a JS class (native or not).
className
must represent a non-trait JS class (native or not).This is used typically to instantiate a JS class, and most importantly if it is a non-native JS class. Given the class
class Foo(x: Int) extends js.Object
The instantiation
new Foo(1)
would be represented asJSNew(LoadJSConstructor(ClassName("Foo")), List(IntLiteral(1)))
This node is also useful to encode
o.isInstanceOf[Foo]
:JSBinaryOp(instanceof, o, LoadJSConstructor(ClassName("Foo")))
If
Foo
is non-native, the presence of this node makes it instantiable, and therefore reachable. -
sealed
case class
LoadJSModule(className: ClassName)(implicit pos: Position) extends Tree with Product with Serializable
Like LoadModule but for a JS module class.
- sealed case class LoadModule(className: ClassName)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class LocalIdent(name: LocalName)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class LongLiteral(value: Long)(implicit pos: Position) extends Tree with Literal with Product with Serializable
-
sealed
case class
Match(selector: Tree, cases: List[(List[MatchableLiteral], Tree)], default: Tree)(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
A break-free switch (without fallthrough behavior).
A break-free switch (without fallthrough behavior).
Unlike a JavaScript switch, it can be used in expression position. It supports alternatives explicitly (hence the
List[MatchableLiteral]
in cases), whereas in a switch one would use the fallthrough behavior to implement alternatives. (This is not a pattern matching construct like in Scala.)The selector must be either an
int
(IntType
) or ajava.lang.String
. The cases can be anyMatchableLiteral
, even if they do not make sense for the type of the selecter (they simply will never match).Because
+0.0 === -0.0
in JavaScript, and because those semantics are used in a JSswitch
, we have to prevent the selector from ever being-0.0
. Otherwise, it would be matched by acase IntLiteral(0)
. At the same time, we must allow at leastint
andjava.lang.String
to support all switchablematch
es from Scala. Since the latter two have no common super type that does not allow-0.0
, we really have to special-case those two types.This is also why we restrict
MatchableLiteral
s toIntLiteral
,StringLiteral
andNull
. Allowing more cases would only make IR checking more complicated, without bringing any added value. -
sealed
trait
MatchableLiteral extends Tree with Literal
Marker for literals that can be used in a Match case.
-
sealed abstract
class
MemberDef extends IRNode
Any member of a
ClassDef
.Any member of a
ClassDef
.Partitioned into
AnyFieldDef
,MethodDef
,JSConstructorDef
andJSMethodPropDef
. - final class MemberFlags extends AnyVal
- final class MemberNamespace extends AnyVal
- sealed case class MethodDef(flags: MemberFlags, name: MethodIdent, originalName: OriginalName, args: List[ParamDef], resultType: Type, body: Option[Tree])(optimizerHints: OptimizerHints, version: Version)(implicit pos: Position) extends MemberDef with VersionedMemberDef with Product with Serializable
- sealed case class MethodIdent(name: MethodName)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class New(className: ClassName, ctor: MethodIdent, args: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class NewArray(typeRef: ArrayTypeRef, length: Tree)(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
case class
NewLambda(descriptor: Descriptor, fun: Tree)(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
New lambda instance of a SAM class.
New lambda instance of a SAM class.
Functionally, a
NewLambda
is equivalent to an instance of an anonymous class with the following shape:val funV: ((...Ts) => R)! = fun; (new superClass with interfaces { def <this>() = this.superClass::<init>() def methodName(...args: Ts): R = funV(...args) }): tpe
where
superClass
,interfaces
,methodName
,Ts
andR
are taken from thedescriptor
.Ts
andR
are theparamTypes
andresultType
of the descriptor. They are required because there is no one-to-one mapping betweenTypeRef
s andType
s, and we want the shape of the class to be a deterministic function of thedescriptor
.The
fun
must have type((...Ts) => R)!
.Intuitively,
tpe
must be a supertype ofsuperClass! & ...interfaces!
. Since our type system does not have intersection types, in practice this means that there must existC ∈ { superClass } ∪ interfaces
such thattpe
is a supertype ofC!
.The uniqueness of the anonymous class and its run-time class name are not guaranteed.
- sealed case class Null()(implicit pos: Position) extends Tree with MatchableLiteral with Product with Serializable
- final class OptimizerHints extends AnyVal
- sealed case class ParamDef(name: LocalIdent, originalName: OriginalName, ptpe: Type, mutable: Boolean)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class RecordSelect(record: Tree, field: SimpleFieldIdent)(tpe: Type)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed case class RecordValue(tpe: RecordType, elems: List[Tree])(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class Return(expr: Tree, label: LabelName)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class Select(qualifier: Tree, field: FieldIdent)(tpe: Type)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed case class SelectJSNativeMember(className: ClassName, member: MethodIdent)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class SelectStatic(field: FieldIdent)(tpe: Type)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed case class ShortLiteral(value: Short)(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class SimpleFieldIdent(name: SimpleFieldName)(implicit pos: Position) extends IRNode with Product with Serializable
- sealed case class Skip()(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class StoreModule()(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class StringLiteral(value: String)(implicit pos: Position) extends Tree with MatchableLiteral with Product with Serializable
- sealed abstract class TopLevelExportDef extends IRNode
- sealed case class TopLevelFieldExportDef(moduleID: String, exportName: String, field: FieldIdent)(implicit pos: Position) extends TopLevelExportDef with Product with Serializable
- sealed case class TopLevelJSClassExportDef(moduleID: String, exportName: String)(implicit pos: Position) extends TopLevelExportDef with Product with Serializable
- sealed case class TopLevelMethodExportDef(moduleID: String, methodDef: JSMethodDef)(implicit pos: Position) extends TopLevelExportDef with Product with Serializable
-
sealed
case class
TopLevelModuleExportDef(moduleID: String, exportName: String)(implicit pos: Position) extends TopLevelExportDef with Product with Serializable
Export for a top-level object.
Export for a top-level object.
This exports the singleton instance of the containing module class. The instance is initialized during ES module instantiation.
-
sealed
case class
Transient(value: Value)(implicit pos: Position) extends Tree with Product with Serializable
A transient node for custom purposes.
A transient node for custom purposes.
A transient node is never a valid input to the Serializers nor to the linker, but can be used in a transient state for internal purposes.
- value
The payload of the transient node, without any specified meaning.
-
sealed abstract
class
Tree extends IRNode with TreeOrJSSpread
Node for a statement or expression in the IR.
-
sealed
trait
TreeOrJSSpread extends IRNode
Either a
Tree
or aJSSpread
.Either a
Tree
or aJSSpread
.This is the type of actual arguments to JS applications.
- sealed case class TryCatch(block: Tree, errVar: LocalIdent, errVarOriginalName: OriginalName, handler: Tree)(tpe: Type)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class TryFinally(block: Tree, finalizer: Tree)(implicit pos: Position) extends Tree with Product with Serializable
-
sealed
case class
UnaryOp(op: Code, lhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
Unary operation.
Unary operation.
All unary operations follow common evaluation steps:
- Let
lhsValue
be the result of evaluatinglhs
. 2. Perform an operation that depends onop
andlhsValue
.
The
Class_x
operations take ajl.Class!
argument, i.e., a non-nullablejl.Class
.Likewise,
Array_length
,GetClass
,Clone
andUnwrapFromThrowable
take arguments of non-nullable types.CheckNotNull
throws NPEs subject to UB.Throw
always throws, obviously.Clone
andWrapAsThrowable
are side-effect-free but not pure.Otherwise, unary operations preserve pureness.
- Let
- sealed case class Undefined()(implicit pos: Position) extends Tree with Literal with Product with Serializable
- sealed case class VarDef(name: LocalIdent, originalName: OriginalName, vtpe: Type, mutable: Boolean, rhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable
- sealed case class VarRef(name: LocalName)(tpe: Type)(implicit pos: Position) extends Tree with AssignLhs with Product with Serializable
- sealed trait VersionedMemberDef extends MemberDef
- sealed case class While(cond: Tree, body: Tree)(implicit pos: Position) extends Tree with Product with Serializable
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isJSIdentifierName(name: String): Boolean
Tests whether the given name is a valid JavaScript identifier name.
Tests whether the given name is a valid JavaScript identifier name.
This test does *not* exclude keywords.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- object ApplyFlags
- object BinaryOp extends Serializable
- object Block
- object ClassDef
- object ClosureFlags
- object JSBinaryOp extends Serializable
- object JSGlobalRef extends Serializable
- object JSNativeLoadSpec
- object JSUnaryOp extends Serializable
- object LinkTimeProperty extends Serializable
- object MemberFlags
- object MemberNamespace
- object NewLambda extends Serializable
- object OptimizerHints
-
object
This
Convenience constructor and extractor for
VarRef
s representingthis
bindings. - object TopLevelExportDef
- object Transient extends Serializable
- object UnaryOp extends Serializable