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 org.jetbrains.org.objectweb.asm.tree.MethodNode |
createEmptyMethodNode()
|
static com.intellij.openapi.vfs.VirtualFile |
findVirtualFile(com.intellij.openapi.project.Project project,
java.lang.String internalClassName)
|
static org.jetbrains.org.objectweb.asm.tree.LabelNode |
firstLabelInChain(org.jetbrains.org.objectweb.asm.tree.LabelNode node)
|
static void |
generateGlobalReturnFlag(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv,
java.lang.String labelName)
|
static void |
generateGoToTryCatchBlockEndMarker(org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
|
static ClassId |
getContainerClassId(DeclarationDescriptor referencedDescriptor)
|
static ClassId |
getContainerClassIdForInlineCallable(DeserializedSimpleFunctionDescriptor deserializedDescriptor)
|
static com.intellij.psi.PsiFile |
getContainingFile(CodegenContext codegenContext)
|
static java.lang.String |
getInlineName(CodegenContext codegenContext,
JetTypeMapper typeMapper)
|
static int |
getLoadStoreArgSize(int opcode)
|
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 java.lang.String |
getNodeText(org.jetbrains.org.objectweb.asm.tree.MethodNode node,
org.jetbrains.org.objectweb.asm.util.Textifier textifier)
|
static org.jetbrains.org.objectweb.asm.Type |
getReturnType(int opcode)
|
static com.intellij.openapi.vfs.VirtualFile |
getVirtualFileForCallable(ClassId containerClassId,
GenerationState state)
|
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 |
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 |
isCapturedFieldName(java.lang.String fieldName)
|
static boolean |
isGoToTryCatchBlockEnd(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
|
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 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
CAPTURED_FIELD_PREFIX
public static final java.lang.String CAPTURED_FIELD_PREFIX
- See Also:
- Constant Field Values
THIS$0
public static final java.lang.String THIS$0
- See Also:
- Constant Field Values
RECEIVER$0
public static final java.lang.String RECEIVER$0
- See Also:
- Constant Field Values
NON_LOCAL_RETURN
public static final java.lang.String NON_LOCAL_RETURN
- 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_MARKER_CLASS_NAME
public static final java.lang.String INLINE_MARKER_CLASS_NAME
- See Also:
- Constant Field Values
INLINE_MARKER_BEFORE_METHOD_NAME
public static final java.lang.String INLINE_MARKER_BEFORE_METHOD_NAME
- See Also:
- Constant Field Values
INLINE_MARKER_AFTER_METHOD_NAME
public static final java.lang.String INLINE_MARKER_AFTER_METHOD_NAME
- See Also:
- Constant Field Values
INLINE_MARKER_GOTO_TRY_CATCH_BLOCK_END
public static final java.lang.String INLINE_MARKER_GOTO_TRY_CATCH_BLOCK_END
- 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)
throws java.lang.ClassNotFoundException,
java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
initDefaultSourceMappingIfNeeded
public static void initDefaultSourceMappingIfNeeded(@NotNull
CodegenContext context,
@NotNull
MemberCodegen codegen,
@NotNull
GenerationState state)
getVirtualFileForCallable
@NotNull
public static com.intellij.openapi.vfs.VirtualFile getVirtualFileForCallable(@NotNull
ClassId containerClassId,
@NotNull
GenerationState state)
getContainerClassIdForInlineCallable
public static ClassId getContainerClassIdForInlineCallable(DeserializedSimpleFunctionDescriptor deserializedDescriptor)
findVirtualFile
@Nullable
public static com.intellij.openapi.vfs.VirtualFile findVirtualFile(@NotNull
com.intellij.openapi.project.Project project,
@NotNull
java.lang.String internalClassName)
getContainerClassId
@Nullable
public static ClassId getContainerClassId(@NotNull
DeclarationDescriptor referencedDescriptor)
getInlineName
public static java.lang.String getInlineName(@NotNull
CodegenContext codegenContext,
@NotNull
JetTypeMapper typeMapper)
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)
isAnonymousSingletonLoad
public static boolean isAnonymousSingletonLoad(@NotNull
java.lang.String internalName,
@NotNull
java.lang.String fieldName)
isAnonymousClass
public static boolean isAnonymousClass(java.lang.String internalName)
getContainingFile
@Nullable
public static com.intellij.psi.PsiFile getContainingFile(CodegenContext codegenContext)
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)
generateGlobalReturnFlag
public static void generateGlobalReturnFlag(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv,
@NotNull
java.lang.String labelName)
getReturnType
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
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)
getNodeText
@NotNull
public static java.lang.String getNodeText(@Nullable
org.jetbrains.org.objectweb.asm.tree.MethodNode node,
@NotNull
org.jetbrains.org.objectweb.asm.util.Textifier textifier)
generateGoToTryCatchBlockEndMarker
public static void generateGoToTryCatchBlockEndMarker(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v)
isGoToTryCatchBlockEnd
public static boolean isGoToTryCatchBlockEnd(@NotNull
org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode node)
addInlineMarker
public static void addInlineMarker(@NotNull
org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v,
boolean isStartNotEnd)
getLoadStoreArgSize
public static int getLoadStoreArgSize(int opcode)