org.jetbrains.kotlin.codegen.inline
Class InlineCodegen
java.lang.Object
org.jetbrains.kotlin.codegen.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,
ValueParameterDescriptor valueParameterDescriptor)
|
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,
JetExpression argumentExpression,
org.jetbrains.org.objectweb.asm.Type parameterType)
|
static CodegenContext |
getContext(DeclarationDescriptor descriptor,
GenerationState state)
|
protected static java.util.Set<java.lang.String> |
getDeclarationLabels(com.intellij.psi.PsiElement lambdaOrFun,
DeclarationDescriptor descriptor)
|
protected static boolean |
isInlinableParameterExpression(JetExpression deparenthesized)
|
static boolean |
isInliningParameter(JetExpression expression,
ValueParameterDescriptor valueParameterDescriptor)
|
void |
leaveTemps()
|
void |
putCapturedValueOnStack(StackValue stackValue,
org.jetbrains.org.objectweb.asm.Type valueType,
int paramIndex)
|
void |
putHiddenParams()
|
void |
putValueIfNeeded(ValueParameterDescriptor valueParameterDescriptor,
org.jetbrains.org.objectweb.asm.Type parameterType,
StackValue value)
|
void |
rememberClosure(JetExpression expression,
org.jetbrains.org.objectweb.asm.Type type)
|
void |
removeFinallyMarkers(org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode)
|
boolean |
shouldPutValue(org.jetbrains.org.objectweb.asm.Type type,
StackValue stackValue,
ValueParameterDescriptor descriptor)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
invocationParamBuilder
protected final ParametersBuilder invocationParamBuilder
expressionMap
protected final java.util.Map<java.lang.Integer,LambdaInfo> expressionMap
InlineCodegen
public InlineCodegen(@NotNull
ExpressionCodegen codegen,
@NotNull
GenerationState state,
@NotNull
SimpleFunctionDescriptor functionDescriptor,
@NotNull
JetElement callElement,
@Nullable
ReifiedTypeParameterMappings typeParameterMappings)
genCallWithoutAssertions
public void genCallWithoutAssertions(@NotNull
CallableMethod callableMethod,
@NotNull
ExpressionCodegen codegen)
- Specified by:
genCallWithoutAssertions
in class CallGenerator
genCallInner
public void genCallInner(@NotNull
Callable callableMethod,
@Nullable
ResolvedCall<?> resolvedCall,
boolean callDefault,
@NotNull
ExpressionCodegen codegen)
- Specified by:
genCallInner
in class CallGenerator
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,
@Nullable
ValueParameterDescriptor valueParameterDescriptor)
- Specified by:
afterParameterPut
in class CallGenerator
shouldPutValue
public boolean shouldPutValue(@NotNull
org.jetbrains.org.objectweb.asm.Type type,
@Nullable
StackValue stackValue,
@Nullable
ValueParameterDescriptor descriptor)
putHiddenParams
public void putHiddenParams()
- Specified by:
putHiddenParams
in class CallGenerator
leaveTemps
public void leaveTemps()
isInliningParameter
public static boolean isInliningParameter(JetExpression expression,
ValueParameterDescriptor valueParameterDescriptor)
isInlinableParameterExpression
protected static boolean isInlinableParameterExpression(JetExpression deparenthesized)
rememberClosure
public void rememberClosure(JetExpression expression,
org.jetbrains.org.objectweb.asm.Type type)
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(DeclarationDescriptor descriptor,
GenerationState state)
genValueAndPut
public void genValueAndPut(@NotNull
ValueParameterDescriptor valueParameterDescriptor,
@NotNull
JetExpression argumentExpression,
@NotNull
org.jetbrains.org.objectweb.asm.Type parameterType)
- Specified by:
genValueAndPut
in class CallGenerator
putValueIfNeeded
public void putValueIfNeeded(@Nullable
ValueParameterDescriptor valueParameterDescriptor,
@NotNull
org.jetbrains.org.objectweb.asm.Type parameterType,
@NotNull
StackValue value)
- Specified by:
putValueIfNeeded
in class CallGenerator
putCapturedValueOnStack
public void putCapturedValueOnStack(@NotNull
StackValue stackValue,
@NotNull
org.jetbrains.org.objectweb.asm.Type valueType,
int paramIndex)
- Specified by:
putCapturedValueOnStack
in class CallGenerator
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)