org.jetbrains.jet.codegen.inline
Class InlineCodegen
java.lang.Object
org.jetbrains.jet.codegen.inline.InlineCodegen
- All Implemented Interfaces:
- CallGenerator
public class InlineCodegen
- extends java.lang.Object
- implements CallGenerator
Method Summary |
void |
afterParameterPut(org.jetbrains.org.objectweb.asm.Type type,
StackValue stackValue,
ValueParameterDescriptor valueParameterDescriptor)
|
void |
genCall(CallableMethod 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.ExternalFinallyBlockInfo> insertPoints)
|
void |
genValueAndPut(ValueParameterDescriptor valueParameterDescriptor,
JetExpression argumentExpression,
org.jetbrains.org.objectweb.asm.Type parameterType)
|
static CodegenContext |
getContext(DeclarationDescriptor descriptor,
GenerationState state)
|
static boolean |
isInliningClosure(JetExpression expression,
ValueParameterDescriptor valueParameterDescriptora)
|
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)
|
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)
genCallWithoutAssertions
public void genCallWithoutAssertions(@NotNull
CallableMethod callableMethod,
@NotNull
ExpressionCodegen codegen)
- Specified by:
genCallWithoutAssertions
in interface CallGenerator
genCall
public void genCall(@NotNull
CallableMethod callableMethod,
@Nullable
ResolvedCall<?> resolvedCall,
boolean callDefault,
@NotNull
ExpressionCodegen codegen)
- Specified by:
genCall
in interface CallGenerator
afterParameterPut
public void afterParameterPut(@NotNull
org.jetbrains.org.objectweb.asm.Type type,
@Nullable
StackValue stackValue,
@Nullable
ValueParameterDescriptor valueParameterDescriptor)
- Specified by:
afterParameterPut
in interface 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 interface CallGenerator
leaveTemps
public void leaveTemps()
isInliningClosure
public static boolean isInliningClosure(JetExpression expression,
ValueParameterDescriptor valueParameterDescriptora)
rememberClosure
public void rememberClosure(JetExpression expression,
org.jetbrains.org.objectweb.asm.Type type)
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 interface CallGenerator
putValueIfNeeded
public void putValueIfNeeded(@Nullable
ValueParameterDescriptor valueParameterDescriptor,
@NotNull
org.jetbrains.org.objectweb.asm.Type parameterType,
@NotNull
StackValue value)
- Specified by:
putValueIfNeeded
in interface CallGenerator
putCapturedValueOnStack
public void putCapturedValueOnStack(@NotNull
StackValue stackValue,
@NotNull
org.jetbrains.org.objectweb.asm.Type valueType,
int paramIndex)
- Specified by:
putCapturedValueOnStack
in interface CallGenerator
generateAndInsertFinallyBlocks
public void generateAndInsertFinallyBlocks(org.jetbrains.org.objectweb.asm.tree.MethodNode intoNode,
java.util.List<MethodInliner.ExternalFinallyBlockInfo> insertPoints)