object BoxKind
- Source
- BoxUnbox.scala
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- BoxKind
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Value Members
-
def
checkInstanceCreation(newOp: TypeInsnNode, prodCons: (backendUtils)#ProdConsAnalyzer): Option[(InsnNode, MethodInsnNode)]
Check if
newOp
is part of a standard object construction pattern in which:Check if
newOp
is part of a standard object construction pattern in which:NEW T DUP [load constructor args] INVOKESPECIAL T.init
The method ensures that the entire construction pattern is closed in itself, without any branches going in or out. This is checked by looking at producers / consumers:
DUP
is the only consumer ofNEW
, and vice versaDUP
the only producer for the receiver of the constructor call- The set of consumers of
DUP
without the constructor call is the same as the set of consumers of the value on the stack top after the constructor call
-
def
checkReceiverPredefLoad(mi: MethodInsnNode, prodCons: (backendUtils)#ProdConsAnalyzer): Option[AbstractInsnNode]
If
mi
is an invocation of a method on Predef, check if the receiver is a GETSTATIC of Predef.MODULE$ and return it. - def valueCreationKind(insn: AbstractInsnNode, prodCons: (backendUtils)#ProdConsAnalyzer): Option[(BoxCreation, BoxKind)]
The Scala compiler and reflection APIs.