org.jetbrains.kotlin.codegen.inline
Class InlineCodegenUtil
java.lang.Object
org.jetbrains.kotlin.codegen.inline.InlineCodegenUtil
public class InlineCodegenUtil
- extends java.lang.Object
Method Summary |
static void |
addInlineMarker(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
boolean isStartNotEnd)
|
static void |
assertVersionNotGreaterThanJava6(int version,
java.lang.String internalName)
|
static int |
calcMarkerShift(Parameters parameters,
org.jetbrains.org.objectweb.asm.tree.MethodNode node)
|
static org.jetbrains.org.objectweb.asm.tree.MethodNode |
createEmptyMethodNode()
|
static com.intellij.openapi.vfs.VirtualFile |
findVirtualFile(GenerationState state,
ClassId classId)
|
static org.jetbrains.org.objectweb.asm.tree.LabelNode |
firstLabelInChain(org.jetbrains.org.objectweb.asm.tree.LabelNode node)
|
static void |
generateFinallyMarker(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
int depth,
boolean start)
|
static void |
generateGlobalReturnFlag(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv,
java.lang.String labelName)
|
static int |
getConstant(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode ins)
|
static java.lang.String |
getInlineName(CodegenContext codegenContext,
KotlinTypeMapper typeMapper,
JvmFileClassesProvider fileClassesManager)
|
static int |
getLoadStoreArgSize(int opcode)
|
static java.lang.String |
getMarkedReturnLabelOrNull(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode returnInsn)
|
static SMAPAndMethodNode |
getMethodNode(byte[] classData,
java.lang.String methodName,
java.lang.String methodDescriptor,
ClassId classId)
|
static java.lang.String |
getNodeText(org.jetbrains.org.objectweb.asm.tree.MethodNode node)
|
static org.jetbrains.org.objectweb.asm.Type |
getReturnType(int opcode)
|
static void |
initDefaultSourceMappingIfNeeded(CodegenContext context,
MemberCodegen codegen,
GenerationState state)
|
static void |
insertNodeBefore(org.jetbrains.org.objectweb.asm.tree.MethodNode from,
org.jetbrains.org.objectweb.asm.tree.MethodNode to,
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode beforeNode)
|
static boolean |
isAfterInlineMarker(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
|
static boolean |
isAnonymousClass(java.lang.String internalName)
|
static boolean |
isAnonymousConstructorCall(java.lang.String internalName,
java.lang.String methodName)
|
static boolean |
isAnonymousSingletonLoad(java.lang.String internalName,
java.lang.String fieldName)
|
static boolean |
isBeforeInlineMarker(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
|
static boolean |
isCapturedFieldName(java.lang.String fieldName)
|
static boolean |
isFakeLocalVariableForInline(java.lang.String name)
|
static boolean |
isFinallyEnd(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
|
static boolean |
isFinallyMarker(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
|
static boolean |
isFinallyMarkerRequired(MethodContext context)
|
static boolean |
isFinallyStart(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
|
static boolean |
isInlineMarker(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
|
static boolean |
isInvokeOnLambda(java.lang.String owner,
java.lang.String name)
|
static boolean |
isMarkedReturn(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode returnIns)
|
static boolean |
isReturnOpcode(int opcode)
|
static boolean |
isStoreInstruction(int opcode)
|
static boolean |
isThis0(java.lang.String name)
|
static boolean |
isWhenMappingAccess(java.lang.String internalName,
java.lang.String fieldName)
|
static org.jetbrains.org.objectweb.asm.MethodVisitor |
wrapWithMaxLocalCalc(org.jetbrains.org.objectweb.asm.tree.MethodNode methodNode)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GENERATE_SMAP
public static final boolean GENERATE_SMAP
- See Also:
- Constant Field Values
API
public static final int API
- See Also:
- Constant Field Values
THIS$0
public static final java.lang.String THIS$0
- See Also:
- Constant Field Values
THIS
public static final java.lang.String THIS
- See Also:
- Constant Field Values
FIRST_FUN_LABEL
public static final java.lang.String FIRST_FUN_LABEL
- See Also:
- Constant Field Values
NUMBERED_FUNCTION_PREFIX
public static final java.lang.String NUMBERED_FUNCTION_PREFIX
- See Also:
- Constant Field Values
INLINE_TRANSFORMATION_SUFFIX
public static final java.lang.String INLINE_TRANSFORMATION_SUFFIX
- See Also:
- Constant Field Values
INLINE_FUN_THIS_0_SUFFIX
public static final java.lang.String INLINE_FUN_THIS_0_SUFFIX
- See Also:
- Constant Field Values
INLINE_FUN_VAR_SUFFIX
public static final java.lang.String INLINE_FUN_VAR_SUFFIX
- See Also:
- Constant Field Values
InlineCodegenUtil
public InlineCodegenUtil()
getMethodNode
@Nullable
public static SMAPAndMethodNode getMethodNode(byte[] classData,
java.lang.String methodName,
java.lang.String methodDescriptor,
ClassId classId)
assertVersionNotGreaterThanJava6
public static void assertVersionNotGreaterThanJava6(int version,
java.lang.String internalName)
initDefaultSourceMappingIfNeeded
public static void initDefaultSourceMappingIfNeeded(@NotNull
CodegenContext context,
@NotNull
MemberCodegen codegen,
@NotNull
GenerationState state)
findVirtualFile
@Nullable
public static com.intellij.openapi.vfs.VirtualFile findVirtualFile(@NotNull
GenerationState state,
@NotNull
ClassId classId)
getInlineName
@NotNull
public static java.lang.String getInlineName(@NotNull
CodegenContext codegenContext,
@NotNull
KotlinTypeMapper typeMapper,
@NotNull
JvmFileClassesProvider fileClassesManager)
isInvokeOnLambda
public static boolean isInvokeOnLambda(@NotNull
java.lang.String owner,
@NotNull
java.lang.String name)
isAnonymousConstructorCall
public static boolean isAnonymousConstructorCall(@NotNull
java.lang.String internalName,
@NotNull
java.lang.String methodName)
isWhenMappingAccess
public static boolean isWhenMappingAccess(@NotNull
java.lang.String internalName,
@NotNull
java.lang.String fieldName)
isAnonymousSingletonLoad
public static boolean isAnonymousSingletonLoad(@NotNull
java.lang.String internalName,
@NotNull
java.lang.String fieldName)
isAnonymousClass
public static boolean isAnonymousClass(@NotNull
java.lang.String internalName)
wrapWithMaxLocalCalc
@NotNull
public static org.jetbrains.org.objectweb.asm.MethodVisitor wrapWithMaxLocalCalc(@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode methodNode)
isCapturedFieldName
public static boolean isCapturedFieldName(@NotNull
java.lang.String fieldName)
isReturnOpcode
public static boolean isReturnOpcode(int opcode)
isMarkedReturn
public static boolean isMarkedReturn(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode returnIns)
getMarkedReturnLabelOrNull
@Nullable
public static java.lang.String getMarkedReturnLabelOrNull(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode returnInsn)
generateGlobalReturnFlag
public static void generateGlobalReturnFlag(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv,
@NotNull
java.lang.String labelName)
getReturnType
@NotNull
public static org.jetbrains.org.objectweb.asm.Type getReturnType(int opcode)
insertNodeBefore
public static void insertNodeBefore(@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode from,
@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode to,
@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode beforeNode)
createEmptyMethodNode
@NotNull
public static org.jetbrains.org.objectweb.asm.tree.MethodNode createEmptyMethodNode()
firstLabelInChain
@NotNull
public static org.jetbrains.org.objectweb.asm.tree.LabelNode firstLabelInChain(@NotNull
org.jetbrains.org.objectweb.asm.tree.LabelNode node)
getNodeText
@NotNull
public static java.lang.String getNodeText(@Nullable
org.jetbrains.org.objectweb.asm.tree.MethodNode node)
generateFinallyMarker
public static void generateFinallyMarker(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
int depth,
boolean start)
isFinallyEnd
public static boolean isFinallyEnd(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
isFinallyStart
public static boolean isFinallyStart(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
isFinallyMarker
public static boolean isFinallyMarker(@Nullable
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
isFinallyMarkerRequired
public static boolean isFinallyMarkerRequired(@NotNull
MethodContext context)
getConstant
public static int getConstant(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode ins)
addInlineMarker
public static void addInlineMarker(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
boolean isStartNotEnd)
isInlineMarker
public static boolean isInlineMarker(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
isBeforeInlineMarker
public static boolean isBeforeInlineMarker(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
isAfterInlineMarker
public static boolean isAfterInlineMarker(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insn)
getLoadStoreArgSize
public static int getLoadStoreArgSize(int opcode)
isStoreInstruction
public static boolean isStoreInstruction(int opcode)
calcMarkerShift
public static int calcMarkerShift(@NotNull
Parameters parameters,
@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode node)
isFakeLocalVariableForInline
public static boolean isFakeLocalVariableForInline(@NotNull
java.lang.String name)
isThis0
public static boolean isThis0(@NotNull
java.lang.String name)