trait BootstrapArgumentLoading extends AnyRef
Provides functionality to produce bytecode that loads a bootstrap argument. Loading of dynamic constants is rewritten to not use ldc/ldc_w/ldc2_w instructions where possible.
- Alphabetic
- By Inheritance
- BootstrapArgumentLoading
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def createObjectMethodsTarget(bootstrapArgs: BootstrapArguments, methodName: String, newMethodName: String, classFile: ClassFile): Option[(ClassFile, MethodDescriptor)]
Creates the code required to perform the action of a method created by java.lang.runtime.ObjectMethods.bootstrap.
Creates the code required to perform the action of a method created by java.lang.runtime.ObjectMethods.bootstrap.
- bootstrapArgs
The arguments to the bootstrap method
- methodName
Name of the represented method (either equals, toString or hashCode)
- newMethodName
The name for the newly created method
- returns
Either a tuple of the updated class file and the descriptor of the new method or None
- Attributes
- protected[this]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def loadBootstrapArgument(argument: ConstantValue[_], instructions: InstructionsBuilder, classFile: ClassFile, boxed: Boolean = false): (Int, ClassFile)
Generate instructions to load a constant argument for a bootstrap method.
Generate instructions to load a constant argument for a bootstrap method.
- argument
The argument to be loaded
- instructions
The instruction builder the instructions are appended to
- classFile
The class file the constant is in
- boxed
If true, ensures the argument is of a reference type, boxing it if necessary
- returns
The maximum stack height the generated instructions require and the (potentially new!) class file
- def loadDynamicConstant(bootstrapMethod: BootstrapMethod, name: String, descriptor: FieldType, instructions: InstructionsBuilder, classFile: ClassFile, boxed: Boolean = false): (Int, ClassFile)
Generate instructions to load a dynamic constant.
Generate instructions to load a dynamic constant.
- bootstrapMethod
The constant's bootstrap method
- name
The constant's name information, passed as the bootstrap method's 2. argument
- descriptor
The constant's type, passed as the bootstrap method's 3. argument
- instructions
The instruction builder the instructions are appended to
- classFile
The class file the constant is in
- boxed
If true, ensures the constant is of a reference type, boxing it if necessary
- returns
The maximum stack height the generated instructions require and the (potentially new!) class file
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newTargetMethodName(cp: Constant_Pool, surroundingMethodNameIndex: Int, surroundingMethodDescriptorIndex: Int, pc: Int, targetMethodName: String): String
Generates a new, internal name for a method to be inserted.
Generates a new, internal name for a method to be inserted.
It follows the pattern:
$targetMethodName${surroundingMethodName}{surroundingMethodDescriptor}:pc
, where surroundingMethodDescriptor is the JVM descriptor of the method sanitized to not contain characters illegal in method names (replacing /, [, ;, < and > by $, ], :, _ and _ respectively) and where pc is the pc of the invokedynamic that is rewritten.- Attributes
- protected[this]
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def replaceChars(in: String, oldChars: String, newChars: String): String
Replaces each of several characters in a String with a given corresponding character.
Replaces each of several characters in a String with a given corresponding character.
- Attributes
- protected[this]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated