org.jetbrains.kotlin.codegen.inline
Class MethodInliner

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

public class MethodInliner
extends java.lang.Object


Nested Class Summary
static class MethodInliner.PointForExternalFinallyBlocks
           
 
Constructor Summary
MethodInliner(org.jetbrains.org.objectweb.asm.tree.MethodNode node, Parameters parameters, InliningContext parent, FieldRemapper nodeRemapper, boolean isSameModule, java.lang.String errorPrefix, SourceMapper sourceMapper)
           
 
Method Summary
 java.lang.String changeOwnerForExternalPackage(java.lang.String type, int opcode)
           
 InlineResult doInline(org.jetbrains.org.objectweb.asm.MethodVisitor adapter, LocalVarRemapper remapper, boolean remapReturn, LabelOwner labelOwner)
           
static CapturedParamInfo findCapturedField(org.jetbrains.org.objectweb.asm.tree.FieldInsnNode node, FieldRemapper fieldRemapper)
           
static java.util.List<org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode> getCapturedFieldAccessChain(org.jetbrains.org.objectweb.asm.tree.VarInsnNode aload0)
           
 LambdaInfo getLambdaIfExists(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insnNode)
           
protected  org.jetbrains.org.objectweb.asm.tree.MethodNode markPlacesForInlineAndRemoveInlinable(org.jetbrains.org.objectweb.asm.tree.MethodNode node)
           
 org.jetbrains.org.objectweb.asm.tree.MethodNode prepareNode(org.jetbrains.org.objectweb.asm.tree.MethodNode node)
           
static java.util.List<MethodInliner.PointForExternalFinallyBlocks> processReturns(org.jetbrains.org.objectweb.asm.tree.MethodNode node, LabelOwner labelOwner, boolean remapReturn, org.jetbrains.org.objectweb.asm.Label endLabel)
           
static void putStackValuesIntoLocals(java.util.List<org.jetbrains.org.objectweb.asm.Type> directOrder, int shift, org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv, java.lang.String descriptor)
           
 java.lang.RuntimeException wrapException(java.lang.Exception originalException, org.jetbrains.org.objectweb.asm.tree.MethodNode node, java.lang.String errorSuffix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodInliner

public MethodInliner(@NotNull
                     org.jetbrains.org.objectweb.asm.tree.MethodNode node,
                     @NotNull
                     Parameters parameters,
                     @NotNull
                     InliningContext parent,
                     @NotNull
                     FieldRemapper nodeRemapper,
                     boolean isSameModule,
                     @NotNull
                     java.lang.String errorPrefix,
                     @NotNull
                     SourceMapper sourceMapper)
Method Detail

doInline

public InlineResult doInline(@NotNull
                             org.jetbrains.org.objectweb.asm.MethodVisitor adapter,
                             @NotNull
                             LocalVarRemapper remapper,
                             boolean remapReturn,
                             @NotNull
                             LabelOwner labelOwner)

findCapturedField

@NotNull
public static CapturedParamInfo findCapturedField(org.jetbrains.org.objectweb.asm.tree.FieldInsnNode node,
                                                          FieldRemapper fieldRemapper)

prepareNode

@NotNull
public org.jetbrains.org.objectweb.asm.tree.MethodNode prepareNode(@NotNull
                                                                           org.jetbrains.org.objectweb.asm.tree.MethodNode node)

markPlacesForInlineAndRemoveInlinable

@NotNull
protected org.jetbrains.org.objectweb.asm.tree.MethodNode markPlacesForInlineAndRemoveInlinable(@NotNull
                                                                                                        org.jetbrains.org.objectweb.asm.tree.MethodNode node)

getLambdaIfExists

public LambdaInfo getLambdaIfExists(org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode insnNode)

getCapturedFieldAccessChain

@NotNull
public static java.util.List<org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode> getCapturedFieldAccessChain(@NotNull
                                                                                                                        org.jetbrains.org.objectweb.asm.tree.VarInsnNode aload0)

putStackValuesIntoLocals

public static void putStackValuesIntoLocals(java.util.List<org.jetbrains.org.objectweb.asm.Type> directOrder,
                                            int shift,
                                            org.jetbrains.org.objectweb.asm.commons.InstructionAdapter iv,
                                            java.lang.String descriptor)

changeOwnerForExternalPackage

public java.lang.String changeOwnerForExternalPackage(java.lang.String type,
                                                      int opcode)

wrapException

@NotNull
public java.lang.RuntimeException wrapException(@NotNull
                                                        java.lang.Exception originalException,
                                                        @NotNull
                                                        org.jetbrains.org.objectweb.asm.tree.MethodNode node,
                                                        @NotNull
                                                        java.lang.String errorSuffix)

processReturns

@NotNull
public static java.util.List<MethodInliner.PointForExternalFinallyBlocks> processReturns(@NotNull
                                                                                                 org.jetbrains.org.objectweb.asm.tree.MethodNode node,
                                                                                                 @NotNull
                                                                                                 LabelOwner labelOwner,
                                                                                                 boolean remapReturn,
                                                                                                 org.jetbrains.org.objectweb.asm.Label endLabel)