org.jetbrains.kotlin.codegen.inline
Class InlineCodegenUtil

java.lang.Object
  extended by org.jetbrains.kotlin.codegen.inline.InlineCodegenUtil

public class InlineCodegenUtil
extends java.lang.Object


Nested Class Summary
static class InlineCodegenUtil.LabelTextifier
           
 
Field Summary
static int API
           
static java.lang.String CAPTURED_FIELD_PREFIX
           
static java.lang.String FIRST_FUN_LABEL
           
static boolean GENERATE_SMAP
           
static java.lang.String INLINE_MARKER_AFTER_METHOD_NAME
           
static java.lang.String INLINE_MARKER_BEFORE_METHOD_NAME
           
static java.lang.String INLINE_MARKER_CLASS_NAME
           
static java.lang.String INLINE_MARKER_GOTO_TRY_CATCH_BLOCK_END
           
static java.lang.String NON_LOCAL_RETURN
           
static java.lang.String NUMBERED_FUNCTION_PREFIX
           
static java.lang.String RECEIVER$0
           
static java.lang.String THIS$0
           
 
Constructor Summary
InlineCodegenUtil()
           
 
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
 

Field Detail

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
Constructor Detail

InlineCodegenUtil

public InlineCodegenUtil()
Method Detail

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)