org.jetbrains.kotlin.codegen
Class ExpressionCodegen

java.lang.Object
  extended by com.intellij.psi.PsiElementVisitor
      extended by org.jetbrains.kotlin.psi.KtVisitor<StackValue,StackValue>
          extended by org.jetbrains.kotlin.codegen.ExpressionCodegen
All Implemented Interfaces:
LocalLookup

public class ExpressionCodegen
extends KtVisitor<StackValue,StackValue>
implements LocalLookup


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jetbrains.kotlin.codegen.context.LocalLookup
LocalLookup.LocalLookupCase
 
Field Summary
 CallGenerator defaultCallGenerator
           
 FrameMap myFrameMap
           
 java.util.Map<KtElement,StackValue> tempVariables
           
 org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v
           
 
Fields inherited from class com.intellij.psi.PsiElementVisitor
EMPTY_VISITOR
 
Constructor Summary
ExpressionCodegen(org.jetbrains.org.objectweb.asm.MethodVisitor mv, FrameMap frameMap, org.jetbrains.org.objectweb.asm.Type returnType, MethodContext context, GenerationState state, MemberCodegen<?> parentCodegen)
           
 
Method Summary
protected  FunctionDescriptor accessibleFunctionDescriptor(ResolvedCall<?> resolvedCall)
           
 void addBlockStackElementsForNonLocalReturns(com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> elements, int finallyDepth)
           
 KotlinType expressionJetType(KtExpression expression)
           
 org.jetbrains.org.objectweb.asm.Type expressionType(KtExpression expression)
           
 StackValue findCapturedValue(DeclarationDescriptor descriptor)
           
 StackValue findLocalOrCapturedValue(DeclarationDescriptor descriptor)
           
 StackValue gen(KtElement expr)
           
 void gen(KtElement expr, org.jetbrains.org.objectweb.asm.Type type)
           
static StackValue generateClassLiteralReference(JetTypeMapper typeMapper, KotlinType type)
           
 StackValue generateConstructorCall(ResolvedCall<?> resolvedCall, org.jetbrains.org.objectweb.asm.Type objectType)
           
 void generateFinallyBlocksIfNeeded(org.jetbrains.org.objectweb.asm.Type returnType, org.jetbrains.org.objectweb.asm.Label afterReturnLabel)
           
 StackValue generateNewArray(KtCallExpression expression, KotlinType arrayType, ResolvedCall<?> resolvedCall)
           
 org.jetbrains.kotlin.codegen.ExpressionCodegen.ObjectLiteralResult generateObjectLiteral(KtObjectLiteralExpression literal)
           
 StackValue generateReceiverValue(ReceiverValue receiverValue, boolean isSuper)
           
 StackValue generateThisOrOuter(ClassDescriptor calleeContainingClass, boolean isSuper)
           
 StackValue generateThisOrOuter(ClassDescriptor calleeContainingClass, boolean isSuper, boolean forceOuter)
           
 StackValue generateTryExpression(KtTryExpression expression, boolean isStatement)
           
 StackValue generateWhenExpression(KtWhenExpression expression, boolean isStatement)
           
 StackValue genLazy(KtElement expr, org.jetbrains.org.objectweb.asm.Type type)
           
 StackValue genQualified(StackValue receiver, KtElement selector)
           
 void genVarargs(VarargValueArgument valueArgument, KotlinType outType)
           
 BindingContext getBindingContext()
           
 com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> getBlockStackElements()
           
static  getCompileTimeConstant(KtExpression expression, BindingContext bindingContext)
           
static  getCompileTimeConstant(KtExpression expression, BindingContext bindingContext, boolean checkPure)
           
 ConstructorDescriptor getConstructorDescriptor(ResolvedCall<?> resolvedCall)
           
 MethodContext getContext()
           
 FrameMap getFrameMap()
           
 NameGenerator getInlineNameGenerator()
           
protected  CallGenerator getOrCreateCallGeneratorForDefaultImplBody(FunctionDescriptor descriptor, KtNamedFunction function)
           
 MemberCodegen<?> getParentCodegen()
           
static CodegenContext getParentContextSubclassOf(ClassDescriptor descriptor, CodegenContext context)
           
 org.jetbrains.org.objectweb.asm.Type getReturnType()
           
 GenerationState getState()
           
static ClassDescriptor getSuperCallLabelTarget(CodegenContext<?> context, KtSuperExpression expression)
           
 boolean hasFinallyBlocks()
           
 int indexOfLocal(KtReferenceExpression lhs)
           
 org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(PropertyDescriptor propertyDescriptor, boolean forceField, boolean syntheticBackingField, ClassDescriptor superCallTarget, boolean skipAccessorsForPrivateFieldInOuterClass, StackValue receiver)
           
 org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(PropertyDescriptor propertyDescriptor, boolean forceField, ClassDescriptor superCallTarget, StackValue receiver)
           
 void invokeAppend(KtExpression expr)
           
 StackValue invokeFunction(Call call, ResolvedCall<?> resolvedCall, StackValue receiver)
           
 StackValue invokeFunction(ResolvedCall<?> resolvedCall, StackValue receiver)
           
 void invokeMethodWithArguments(Callable callableMethod, ResolvedCall<?> resolvedCall, StackValue receiver)
           
 void invokeMethodWithArguments(Callable callableMethod, ResolvedCall<?> resolvedCall, StackValue receiver, CallGenerator callGenerator, ArgumentGenerator argumentGenerator)
           
 boolean isShouldMarkLineNumbers()
           
 boolean lookupLocal(DeclarationDescriptor descriptor)
           
 int lookupLocalIndex(DeclarationDescriptor descriptor)
           
 StackValue lookupOuterValue(EnclosedValueDescriptor d)
           
 void markLineNumber(KtElement statement, boolean markEndOffset)
           
 void markLineNumberAfterInlineIfNeeded()
           
 void markStartLineNumber(KtElement element)
           
 void newArrayInstruction(KotlinType arrayType)
           
 void propagateChildReifiedTypeParametersUsages(ReifiedTypeParametersUsages usages)
           
 void pushClosureOnStack(ClassDescriptor classDescriptor, boolean putThis, CallGenerator callGenerator)
           
 void putReifiedOperationMarkerIfTypeIsReifiedParameter(KotlinType type, ReifiedTypeInliner.OperationKind operationKind)
           
 void putUnitInstanceOntoStackForNonExhaustiveWhen(KtWhenExpression whenExpression, boolean isStatement)
           
 void returnExpression(KtExpression expr)
           
 void setShouldMarkLineNumbers(boolean shouldMarkLineNumbers)
           
 java.lang.String toString()
           
 StackValue visitAnnotatedExpression(KtAnnotatedExpression expression, StackValue receiver)
           
 StackValue visitArrayAccessExpression(KtArrayAccessExpression expression, StackValue receiver)
           
 StackValue visitBinaryExpression(KtBinaryExpression expression, StackValue receiver)
           
 StackValue visitBinaryWithTypeRHSExpression(KtBinaryExpressionWithTypeRHS expression, StackValue receiver)
           
 StackValue visitBlockExpression(KtBlockExpression expression, StackValue receiver)
           
 StackValue visitBreakExpression(KtBreakExpression expression, StackValue receiver)
           
 StackValue visitCallableReferenceExpression(KtCallableReferenceExpression expression, StackValue data)
           
 StackValue visitCallExpression(KtCallExpression expression, StackValue receiver)
           
 StackValue visitClass(KtClass klass, StackValue data)
           
 StackValue visitClassLiteralExpression(KtClassLiteralExpression expression, StackValue data)
           
 StackValue visitConstantExpression(KtConstantExpression expression, StackValue receiver)
           
 StackValue visitContinueExpression(KtContinueExpression expression, StackValue receiver)
           
 StackValue visitDestructuringDeclaration(KtDestructuringDeclaration multiDeclaration, StackValue receiver)
           
 StackValue visitDotQualifiedExpression(KtDotQualifiedExpression expression, StackValue receiver)
           
 StackValue visitDoWhileExpression(KtDoWhileExpression expression, StackValue receiver)
           
 StackValue visitExpression(KtExpression expression, StackValue receiver)
           
 StackValue visitForExpression(KtForExpression forExpression, StackValue receiver)
           
 StackValue visitIfExpression(KtIfExpression expression, StackValue receiver)
           
 StackValue visitIsExpression(KtIsExpression expression, StackValue receiver)
           
 StackValue visitLabeledExpression(KtLabeledExpression expression, StackValue receiver)
           
 StackValue visitLambdaExpression(KtLambdaExpression expression, StackValue receiver)
           
 StackValue visitNamedFunction(KtNamedFunction function, StackValue data)
           
 StackValue visitNamedFunction(KtNamedFunction function, StackValue data, boolean isStatement)
           
 StackValue visitObjectDeclaration(KtObjectDeclaration declaration, StackValue data)
           
 StackValue visitObjectLiteralExpression(KtObjectLiteralExpression expression, StackValue receiver)
           
 StackValue visitParenthesizedExpression(KtParenthesizedExpression expression, StackValue receiver)
           
 StackValue visitPostfixExpression(KtPostfixExpression expression, StackValue receiver)
           
 StackValue visitPrefixExpression(KtPrefixExpression expression, StackValue receiver)
           
 StackValue visitProperty(KtProperty property, StackValue receiver)
           
 StackValue visitReturnExpression(KtReturnExpression expression, StackValue receiver)
           
 StackValue visitSafeQualifiedExpression(KtSafeQualifiedExpression expression, StackValue unused)
           
 StackValue visitSimpleNameExpression(KtSimpleNameExpression expression, StackValue receiver)
           
 StackValue visitStringTemplateExpression(KtStringTemplateExpression expression, StackValue receiver)
           
 StackValue visitSuperExpression(KtSuperExpression expression, StackValue data)
           
 StackValue visitThisExpression(KtThisExpression expression, StackValue receiver)
           
 StackValue visitThrowExpression(KtThrowExpression expression, StackValue receiver)
           
 StackValue visitTryExpression(KtTryExpression expression, StackValue receiver)
           
 StackValue visitWhenExpression(KtWhenExpression expression, StackValue receiver)
           
 StackValue visitWhileExpression(KtWhileExpression expression, StackValue receiver)
           
 
Methods inherited from class org.jetbrains.kotlin.psi.KtVisitor
visitAnnotation, visitAnnotationEntry, visitAnnotationUseSiteTarget, visitAnonymousInitializer, visitArgument, visitBlockStringTemplateEntry, visitCatchSection, visitClassBody, visitClassInitializer, visitClassOrObject, visitConstructorCalleeExpression, visitConstructorDelegationCall, visitDeclaration, visitDelegatedSuperTypeEntry, visitDestructuringDeclarationEntry, visitDoubleColonExpression, visitDynamicType, visitEnumEntry, visitEscapeStringTemplateEntry, visitExpressionWithLabel, visitFileAnnotationList, visitFinallySection, visitFunctionType, visitImportDirective, visitImportList, visitInitializerList, visitKtElement, visitKtFile, visitLiteralStringTemplateEntry, visitLoopExpression, visitModifierList, visitNamedDeclaration, visitNullableType, visitPackageDirective, visitParameter, visitParameterList, visitPrimaryConstructor, visitPropertyAccessor, visitPropertyDelegate, visitQualifiedExpression, visitReferenceExpression, visitScript, visitScriptInitializer, visitSecondaryConstructor, visitSelfType, visitSimpleNameStringTemplateEntry, visitStringTemplateEntry, visitStringTemplateEntryWithExpression, visitSuperTypeCallEntry, visitSuperTypeEntry, visitSuperTypeList, visitSuperTypeListEntry, visitTypeArgumentList, visitTypeConstraint, visitTypeConstraintList, visitTypeParameter, visitTypeParameterList, visitTypeProjection, visitTypeReference, visitUnaryExpression, visitUserType, visitValueArgumentList, visitWhenConditionInRange, visitWhenConditionIsPattern, visitWhenConditionWithExpression, visitWhenEntry
 
Methods inherited from class com.intellij.psi.PsiElementVisitor
visitBinaryFile, visitComment, visitDirectory, visitElement, visitErrorElement, visitFile, visitOuterLanguageElement, visitPlainText, visitPlainTextFile, visitWhiteSpace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

v

public final org.jetbrains.org.objectweb.asm.commons.InstructionAdapter v

myFrameMap

public final FrameMap myFrameMap

defaultCallGenerator

public final CallGenerator defaultCallGenerator

tempVariables

public final java.util.Map<KtElement,StackValue> tempVariables
Constructor Detail

ExpressionCodegen

public ExpressionCodegen(@NotNull
                         org.jetbrains.org.objectweb.asm.MethodVisitor mv,
                         @NotNull
                         FrameMap frameMap,
                         @NotNull
                         org.jetbrains.org.objectweb.asm.Type returnType,
                         @NotNull
                         MethodContext context,
                         @NotNull
                         GenerationState state,
                         @NotNull
                         MemberCodegen<?> parentCodegen)
Method Detail

getState

@NotNull
public GenerationState getState()

getBindingContext

@NotNull
public BindingContext getBindingContext()

getParentCodegen

@NotNull
public MemberCodegen<?> getParentCodegen()

generateObjectLiteral

@NotNull
public org.jetbrains.kotlin.codegen.ExpressionCodegen.ObjectLiteralResult generateObjectLiteral(@NotNull
                                                                                                        KtObjectLiteralExpression literal)

genQualified

public StackValue genQualified(StackValue receiver,
                               KtElement selector)

gen

public StackValue gen(KtElement expr)

gen

public void gen(KtElement expr,
                org.jetbrains.org.objectweb.asm.Type type)

genLazy

public StackValue genLazy(KtElement expr,
                          org.jetbrains.org.objectweb.asm.Type type)

visitClass

public StackValue visitClass(@NotNull
                             KtClass klass,
                             StackValue data)
Overrides:
visitClass in class KtVisitor<StackValue,StackValue>

visitObjectDeclaration

public StackValue visitObjectDeclaration(@NotNull
                                         KtObjectDeclaration declaration,
                                         StackValue data)
Overrides:
visitObjectDeclaration in class KtVisitor<StackValue,StackValue>

visitExpression

public StackValue visitExpression(@NotNull
                                  KtExpression expression,
                                  StackValue receiver)
Overrides:
visitExpression in class KtVisitor<StackValue,StackValue>

visitSuperExpression

public StackValue visitSuperExpression(@NotNull
                                       KtSuperExpression expression,
                                       StackValue data)
Overrides:
visitSuperExpression in class KtVisitor<StackValue,StackValue>

getSuperCallLabelTarget

@NotNull
public static ClassDescriptor getSuperCallLabelTarget(@NotNull
                                                              CodegenContext<?> context,
                                                              @NotNull
                                                              KtSuperExpression expression)

expressionType

@NotNull
public org.jetbrains.org.objectweb.asm.Type expressionType(@Nullable
                                                                   KtExpression expression)

expressionJetType

@Nullable
public KotlinType expressionJetType(@Nullable
                                             KtExpression expression)

visitParenthesizedExpression

public StackValue visitParenthesizedExpression(@NotNull
                                               KtParenthesizedExpression expression,
                                               StackValue receiver)
Overrides:
visitParenthesizedExpression in class KtVisitor<StackValue,StackValue>

visitAnnotatedExpression

public StackValue visitAnnotatedExpression(@NotNull
                                           KtAnnotatedExpression expression,
                                           StackValue receiver)
Overrides:
visitAnnotatedExpression in class KtVisitor<StackValue,StackValue>

visitIfExpression

public StackValue visitIfExpression(@NotNull
                                    KtIfExpression expression,
                                    StackValue receiver)
Overrides:
visitIfExpression in class KtVisitor<StackValue,StackValue>

visitWhileExpression

public StackValue visitWhileExpression(@NotNull
                                       KtWhileExpression expression,
                                       StackValue receiver)
Overrides:
visitWhileExpression in class KtVisitor<StackValue,StackValue>

visitDoWhileExpression

public StackValue visitDoWhileExpression(@NotNull
                                         KtDoWhileExpression expression,
                                         StackValue receiver)
Overrides:
visitDoWhileExpression in class KtVisitor<StackValue,StackValue>

visitForExpression

public StackValue visitForExpression(@NotNull
                                     KtForExpression forExpression,
                                     StackValue receiver)
Overrides:
visitForExpression in class KtVisitor<StackValue,StackValue>

visitBreakExpression

public StackValue visitBreakExpression(@NotNull
                                       KtBreakExpression expression,
                                       StackValue receiver)
Overrides:
visitBreakExpression in class KtVisitor<StackValue,StackValue>

visitContinueExpression

public StackValue visitContinueExpression(@NotNull
                                          KtContinueExpression expression,
                                          StackValue receiver)
Overrides:
visitContinueExpression in class KtVisitor<StackValue,StackValue>

visitConstantExpression

public StackValue visitConstantExpression(@NotNull
                                          KtConstantExpression expression,
                                          StackValue receiver)
Overrides:
visitConstantExpression in class KtVisitor<StackValue,StackValue>

getCompileTimeConstant

@Nullable
public static  getCompileTimeConstant(@NotNull
                                                    KtExpression expression,
                                                    @NotNull
                                                    BindingContext bindingContext)

getCompileTimeConstant

@Nullable
public static  getCompileTimeConstant(@NotNull
                                                    KtExpression expression,
                                                    @NotNull
                                                    BindingContext bindingContext,
                                                    boolean checkPure)

visitStringTemplateExpression

public StackValue visitStringTemplateExpression(@NotNull
                                                KtStringTemplateExpression expression,
                                                StackValue receiver)
Overrides:
visitStringTemplateExpression in class KtVisitor<StackValue,StackValue>

visitBlockExpression

public StackValue visitBlockExpression(@NotNull
                                       KtBlockExpression expression,
                                       StackValue receiver)
Overrides:
visitBlockExpression in class KtVisitor<StackValue,StackValue>

visitNamedFunction

public StackValue visitNamedFunction(@NotNull
                                     KtNamedFunction function,
                                     StackValue data)
Overrides:
visitNamedFunction in class KtVisitor<StackValue,StackValue>

visitNamedFunction

public StackValue visitNamedFunction(@NotNull
                                     KtNamedFunction function,
                                     StackValue data,
                                     boolean isStatement)

visitLambdaExpression

public StackValue visitLambdaExpression(@NotNull
                                        KtLambdaExpression expression,
                                        StackValue receiver)
Overrides:
visitLambdaExpression in class KtVisitor<StackValue,StackValue>

visitObjectLiteralExpression

public StackValue visitObjectLiteralExpression(@NotNull
                                               KtObjectLiteralExpression expression,
                                               StackValue receiver)
Overrides:
visitObjectLiteralExpression in class KtVisitor<StackValue,StackValue>

pushClosureOnStack

public void pushClosureOnStack(@NotNull
                               ClassDescriptor classDescriptor,
                               boolean putThis,
                               @NotNull
                               CallGenerator callGenerator)

lookupOuterValue

@NotNull
public StackValue lookupOuterValue(EnclosedValueDescriptor d)

isShouldMarkLineNumbers

public boolean isShouldMarkLineNumbers()

setShouldMarkLineNumbers

public void setShouldMarkLineNumbers(boolean shouldMarkLineNumbers)

markStartLineNumber

public void markStartLineNumber(@NotNull
                                KtElement element)

markLineNumber

public void markLineNumber(@NotNull
                           KtElement statement,
                           boolean markEndOffset)

markLineNumberAfterInlineIfNeeded

public void markLineNumberAfterInlineIfNeeded()

hasFinallyBlocks

public boolean hasFinallyBlocks()

visitReturnExpression

public StackValue visitReturnExpression(@NotNull
                                        KtReturnExpression expression,
                                        StackValue receiver)
Overrides:
visitReturnExpression in class KtVisitor<StackValue,StackValue>

generateFinallyBlocksIfNeeded

public void generateFinallyBlocksIfNeeded(org.jetbrains.org.objectweb.asm.Type returnType,
                                          @NotNull
                                          org.jetbrains.org.objectweb.asm.Label afterReturnLabel)

returnExpression

public void returnExpression(KtExpression expr)

visitSimpleNameExpression

public StackValue visitSimpleNameExpression(@NotNull
                                            KtSimpleNameExpression expression,
                                            @NotNull
                                            StackValue receiver)
Overrides:
visitSimpleNameExpression in class KtVisitor<StackValue,StackValue>

findLocalOrCapturedValue

@Nullable
public StackValue findLocalOrCapturedValue(@NotNull
                                                    DeclarationDescriptor descriptor)

findCapturedValue

@Nullable
public StackValue findCapturedValue(@NotNull
                                             DeclarationDescriptor descriptor)

lookupLocal

public boolean lookupLocal(DeclarationDescriptor descriptor)
Specified by:
lookupLocal in interface LocalLookup

lookupLocalIndex

public int lookupLocalIndex(DeclarationDescriptor descriptor)

intermediateValueForProperty

@NotNull
public org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(@NotNull
                                                                                             PropertyDescriptor propertyDescriptor,
                                                                                             boolean forceField,
                                                                                             @Nullable
                                                                                             ClassDescriptor superCallTarget,
                                                                                             @NotNull
                                                                                             StackValue receiver)

intermediateValueForProperty

public org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(@NotNull
                                                                                     PropertyDescriptor propertyDescriptor,
                                                                                     boolean forceField,
                                                                                     boolean syntheticBackingField,
                                                                                     @Nullable
                                                                                     ClassDescriptor superCallTarget,
                                                                                     boolean skipAccessorsForPrivateFieldInOuterClass,
                                                                                     StackValue receiver)

visitCallExpression

public StackValue visitCallExpression(@NotNull
                                      KtCallExpression expression,
                                      StackValue receiver)
Overrides:
visitCallExpression in class KtVisitor<StackValue,StackValue>

accessibleFunctionDescriptor

@NotNull
protected FunctionDescriptor accessibleFunctionDescriptor(@NotNull
                                                                  ResolvedCall<?> resolvedCall)

invokeFunction

@NotNull
public StackValue invokeFunction(@NotNull
                                         ResolvedCall<?> resolvedCall,
                                         @NotNull
                                         StackValue receiver)

invokeFunction

@NotNull
public StackValue invokeFunction(@NotNull
                                         Call call,
                                         @NotNull
                                         ResolvedCall<?> resolvedCall,
                                         @NotNull
                                         StackValue receiver)

getParentContextSubclassOf

@Nullable
public static CodegenContext getParentContextSubclassOf(ClassDescriptor descriptor,
                                                                 CodegenContext context)

invokeMethodWithArguments

public void invokeMethodWithArguments(@NotNull
                                      Callable callableMethod,
                                      @NotNull
                                      ResolvedCall<?> resolvedCall,
                                      @NotNull
                                      StackValue receiver)

invokeMethodWithArguments

public void invokeMethodWithArguments(@NotNull
                                      Callable callableMethod,
                                      @NotNull
                                      ResolvedCall<?> resolvedCall,
                                      @NotNull
                                      StackValue receiver,
                                      @NotNull
                                      CallGenerator callGenerator,
                                      @NotNull
                                      ArgumentGenerator argumentGenerator)

getOrCreateCallGeneratorForDefaultImplBody

@NotNull
protected CallGenerator getOrCreateCallGeneratorForDefaultImplBody(@NotNull
                                                                           FunctionDescriptor descriptor,
                                                                           @Nullable
                                                                           KtNamedFunction function)

generateReceiverValue

@NotNull
public StackValue generateReceiverValue(@Nullable
                                                ReceiverValue receiverValue,
                                                boolean isSuper)

generateThisOrOuter

@NotNull
public StackValue generateThisOrOuter(@NotNull
                                              ClassDescriptor calleeContainingClass,
                                              boolean isSuper)

generateThisOrOuter

@NotNull
public StackValue generateThisOrOuter(@NotNull
                                              ClassDescriptor calleeContainingClass,
                                              boolean isSuper,
                                              boolean forceOuter)

genVarargs

public void genVarargs(@NotNull
                       VarargValueArgument valueArgument,
                       @NotNull
                       KotlinType outType)

indexOfLocal

public int indexOfLocal(KtReferenceExpression lhs)

visitClassLiteralExpression

public StackValue visitClassLiteralExpression(@NotNull
                                              KtClassLiteralExpression expression,
                                              StackValue data)
Overrides:
visitClassLiteralExpression in class KtVisitor<StackValue,StackValue>

visitCallableReferenceExpression

public StackValue visitCallableReferenceExpression(@NotNull
                                                   KtCallableReferenceExpression expression,
                                                   StackValue data)
Overrides:
visitCallableReferenceExpression in class KtVisitor<StackValue,StackValue>

generateClassLiteralReference

@NotNull
public static StackValue generateClassLiteralReference(@NotNull
                                                               JetTypeMapper typeMapper,
                                                               @NotNull
                                                               KotlinType type)

visitDotQualifiedExpression

public StackValue visitDotQualifiedExpression(@NotNull
                                              KtDotQualifiedExpression expression,
                                              StackValue receiver)
Overrides:
visitDotQualifiedExpression in class KtVisitor<StackValue,StackValue>

visitSafeQualifiedExpression

public StackValue visitSafeQualifiedExpression(@NotNull
                                               KtSafeQualifiedExpression expression,
                                               StackValue unused)
Overrides:
visitSafeQualifiedExpression in class KtVisitor<StackValue,StackValue>

visitBinaryExpression

public StackValue visitBinaryExpression(@NotNull
                                        KtBinaryExpression expression,
                                        @NotNull
                                        StackValue receiver)
Overrides:
visitBinaryExpression in class KtVisitor<StackValue,StackValue>

invokeAppend

public void invokeAppend(KtExpression expr)

visitLabeledExpression

public StackValue visitLabeledExpression(@NotNull
                                         KtLabeledExpression expression,
                                         StackValue receiver)
Overrides:
visitLabeledExpression in class KtVisitor<StackValue,StackValue>

visitPrefixExpression

public StackValue visitPrefixExpression(@NotNull
                                        KtPrefixExpression expression,
                                        @NotNull
                                        StackValue receiver)
Overrides:
visitPrefixExpression in class KtVisitor<StackValue,StackValue>

visitPostfixExpression

public StackValue visitPostfixExpression(@NotNull
                                         KtPostfixExpression expression,
                                         StackValue receiver)
Overrides:
visitPostfixExpression in class KtVisitor<StackValue,StackValue>

visitProperty

public StackValue visitProperty(@NotNull
                                KtProperty property,
                                StackValue receiver)
Overrides:
visitProperty in class KtVisitor<StackValue,StackValue>

visitDestructuringDeclaration

public StackValue visitDestructuringDeclaration(@NotNull
                                                KtDestructuringDeclaration multiDeclaration,
                                                StackValue receiver)
Overrides:
visitDestructuringDeclaration in class KtVisitor<StackValue,StackValue>

getConstructorDescriptor

@NotNull
public ConstructorDescriptor getConstructorDescriptor(@NotNull
                                                              ResolvedCall<?> resolvedCall)

generateConstructorCall

@NotNull
public StackValue generateConstructorCall(@NotNull
                                                  ResolvedCall<?> resolvedCall,
                                                  @NotNull
                                                  org.jetbrains.org.objectweb.asm.Type objectType)

generateNewArray

public StackValue generateNewArray(@NotNull
                                   KtCallExpression expression,
                                   @NotNull
                                   KotlinType arrayType,
                                   @NotNull
                                   ResolvedCall<?> resolvedCall)

newArrayInstruction

public void newArrayInstruction(@NotNull
                                KotlinType arrayType)

visitArrayAccessExpression

public StackValue visitArrayAccessExpression(@NotNull
                                             KtArrayAccessExpression expression,
                                             StackValue receiver)
Overrides:
visitArrayAccessExpression in class KtVisitor<StackValue,StackValue>

visitThrowExpression

public StackValue visitThrowExpression(@NotNull
                                       KtThrowExpression expression,
                                       StackValue receiver)
Overrides:
visitThrowExpression in class KtVisitor<StackValue,StackValue>

visitThisExpression

public StackValue visitThisExpression(@NotNull
                                      KtThisExpression expression,
                                      StackValue receiver)
Overrides:
visitThisExpression in class KtVisitor<StackValue,StackValue>

visitTryExpression

public StackValue visitTryExpression(@NotNull
                                     KtTryExpression expression,
                                     StackValue receiver)
Overrides:
visitTryExpression in class KtVisitor<StackValue,StackValue>

generateTryExpression

public StackValue generateTryExpression(KtTryExpression expression,
                                        boolean isStatement)

visitBinaryWithTypeRHSExpression

public StackValue visitBinaryWithTypeRHSExpression(@NotNull
                                                   KtBinaryExpressionWithTypeRHS expression,
                                                   StackValue receiver)
Overrides:
visitBinaryWithTypeRHSExpression in class KtVisitor<StackValue,StackValue>

visitIsExpression

public StackValue visitIsExpression(@NotNull
                                    KtIsExpression expression,
                                    StackValue receiver)
Overrides:
visitIsExpression in class KtVisitor<StackValue,StackValue>

putReifiedOperationMarkerIfTypeIsReifiedParameter

public void putReifiedOperationMarkerIfTypeIsReifiedParameter(@NotNull
                                                              KotlinType type,
                                                              @NotNull
                                                              ReifiedTypeInliner.OperationKind operationKind)

propagateChildReifiedTypeParametersUsages

public void propagateChildReifiedTypeParametersUsages(@NotNull
                                                      ReifiedTypeParametersUsages usages)

visitWhenExpression

public StackValue visitWhenExpression(@NotNull
                                      KtWhenExpression expression,
                                      StackValue receiver)
Overrides:
visitWhenExpression in class KtVisitor<StackValue,StackValue>

generateWhenExpression

public StackValue generateWhenExpression(KtWhenExpression expression,
                                         boolean isStatement)

putUnitInstanceOntoStackForNonExhaustiveWhen

public void putUnitInstanceOntoStackForNonExhaustiveWhen(@NotNull
                                                         KtWhenExpression whenExpression,
                                                         boolean isStatement)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getFrameMap

@NotNull
public FrameMap getFrameMap()

getContext

@NotNull
public MethodContext getContext()

getInlineNameGenerator

@NotNull
public NameGenerator getInlineNameGenerator()

getReturnType

public org.jetbrains.org.objectweb.asm.Type getReturnType()

getBlockStackElements

public com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> getBlockStackElements()

addBlockStackElementsForNonLocalReturns

public void addBlockStackElementsForNonLocalReturns(@NotNull
                                                    com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> elements,
                                                    int finallyDepth)