org.jetbrains.kotlin.codegen.inline
Class InlineCodegen
java.lang.Object
CallGenerator
org.jetbrains.kotlin.codegen.inline.InlineCodegen
public class InlineCodegen
- extends CallGenerator
Method Summary |
void |
afterParameterPut(org.jetbrains.org.objectweb.asm.Type type,
StackValue stackValue,
int parameterIndex)
|
void |
genCallInner(Callable callableMethod,
ResolvedCall<?> resolvedCall,
boolean callDefault,
ExpressionCodegen codegen)
|
void |
genCallWithoutAssertions(CallableMethod callableMethod,
ExpressionCodegen codegen)
|
void |
generateAndInsertFinallyBlocks(org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode,
java.util.List<MethodInliner.PointForExternalFinallyBlocks> insertPoints,
int offsetForFinallyLocalVar)
|
protected void |
generateStub(ResolvedCall<?> resolvedCall,
ExpressionCodegen codegen)
|
void |
genValueAndPut(ValueParameterDescriptor valueParameterDescriptor,
KtExpression argumentExpression,
org.jetbrains.org.objectweb.asm.Type parameterType,
int parameterIndex)
|
static CodegenContext |
getContext(DeclarationDescriptor descriptor,
GenerationState state,
KtFile sourceFile)
|
protected static java.util.Set<java.lang.String> |
getDeclarationLabels(com.intellij.psi.PsiElement lambdaOrFun,
DeclarationDescriptor descriptor)
|
protected static boolean |
isInlinableParameterExpression(KtExpression deparenthesized)
|
boolean |
isInliningParameter(KtExpression expression,
ValueParameterDescriptor valueParameterDescriptor)
|
void |
leaveTemps()
|
void |
putCapturedValueOnStack(StackValue stackValue,
org.jetbrains.org.objectweb.asm.Type valueType,
int paramIndex)
|
void |
putHiddenParams()
|
void |
putValueIfNeeded(org.jetbrains.org.objectweb.asm.Type parameterType,
StackValue value)
|
void |
rememberClosure(KtExpression expression,
org.jetbrains.org.objectweb.asm.Type type,
ValueParameterDescriptor parameter)
|
void |
removeFinallyMarkers(org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode)
|
void |
reorderArgumentsIfNeeded(java.util.List<ArgumentAndDeclIndex> actualArgsWithDeclIndex,
java.util.List<? extends org.jetbrains.org.objectweb.asm.Type> valueParameterTypes)
|
static boolean |
shouldPutValue(org.jetbrains.org.objectweb.asm.Type type,
StackValue stackValue)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InlineCodegen
public InlineCodegen(@NotNull
ExpressionCodegen codegen,
@NotNull
GenerationState state,
@NotNull
FunctionDescriptor function,
@NotNull
KtElement callElement,
@Nullable
TypeParameterMappings typeParameterMappings,
boolean isDefaultCompilation)
genCallWithoutAssertions
public void genCallWithoutAssertions(@NotNull
CallableMethod callableMethod,
@NotNull
ExpressionCodegen codegen)
genCallInner
public void genCallInner(@NotNull
Callable callableMethod,
@Nullable
ResolvedCall<?> resolvedCall,
boolean callDefault,
@NotNull
ExpressionCodegen codegen)
generateStub
protected void generateStub(@Nullable
ResolvedCall<?> resolvedCall,
@NotNull
ExpressionCodegen codegen)
afterParameterPut
public void afterParameterPut(@NotNull
org.jetbrains.org.objectweb.asm.Type type,
@Nullable
StackValue stackValue,
int parameterIndex)
shouldPutValue
public static boolean shouldPutValue(@NotNull
org.jetbrains.org.objectweb.asm.Type type,
@Nullable
StackValue stackValue)
putHiddenParams
public void putHiddenParams()
leaveTemps
public void leaveTemps()
isInliningParameter
public boolean isInliningParameter(KtExpression expression,
ValueParameterDescriptor valueParameterDescriptor)
isInlinableParameterExpression
protected static boolean isInlinableParameterExpression(KtExpression deparenthesized)
rememberClosure
public void rememberClosure(KtExpression expression,
org.jetbrains.org.objectweb.asm.Type type,
ValueParameterDescriptor parameter)
getDeclarationLabels
@NotNull
protected static java.util.Set<java.lang.String> getDeclarationLabels(@Nullable
com.intellij.psi.PsiElement lambdaOrFun,
@NotNull
DeclarationDescriptor descriptor)
getContext
public static CodegenContext getContext(@NotNull
DeclarationDescriptor descriptor,
@NotNull
GenerationState state,
@Nullable
KtFile sourceFile)
genValueAndPut
public void genValueAndPut(@NotNull
ValueParameterDescriptor valueParameterDescriptor,
@NotNull
KtExpression argumentExpression,
@NotNull
org.jetbrains.org.objectweb.asm.Type parameterType,
int parameterIndex)
putValueIfNeeded
public void putValueIfNeeded(@NotNull
org.jetbrains.org.objectweb.asm.Type parameterType,
@NotNull
StackValue value)
putCapturedValueOnStack
public void putCapturedValueOnStack(@NotNull
StackValue stackValue,
@NotNull
org.jetbrains.org.objectweb.asm.Type valueType,
int paramIndex)
generateAndInsertFinallyBlocks
public void generateAndInsertFinallyBlocks(@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode,
@NotNull
java.util.List<MethodInliner.PointForExternalFinallyBlocks> insertPoints,
int offsetForFinallyLocalVar)
removeFinallyMarkers
public void removeFinallyMarkers(@NotNull
org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode)
reorderArgumentsIfNeeded
public void reorderArgumentsIfNeeded(@NotNull
java.util.List<ArgumentAndDeclIndex> actualArgsWithDeclIndex,
@NotNull
java.util.List<? extends org.jetbrains.org.objectweb.asm.Type> valueParameterTypes)