org.jetbrains.kotlin.codegen
Class ExpressionCodegen

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

public class ExpressionCodegen
extends JetVisitor<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<JetElement,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
 void addBlockStackElementsForNonLocalReturns(com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> elements)
           
 JetType expressionJetType(JetExpression expression)
           
 org.jetbrains.org.objectweb.asm.Type expressionType(JetExpression expression)
           
 StackValue findLocalOrCapturedValue(DeclarationDescriptor descriptor)
           
 StackValue gen(JetElement expr)
           
 void gen(JetElement expr, org.jetbrains.org.objectweb.asm.Type type)
           
 StackValue generateConstructorCall(ResolvedCall<?> resolvedCall, org.jetbrains.org.objectweb.asm.Type objectType)
           
 void generateFinallyBlocksIfNeeded(org.jetbrains.org.objectweb.asm.Type returnType)
           
 StackValue generateNewArray(JetCallExpression expression, JetType arrayType)
           
 org.jetbrains.kotlin.codegen.ExpressionCodegen.ObjectLiteralResult generateObjectLiteral(JetObjectLiteralExpression literal)
           
 StackValue generateReceiverValue(ReceiverValue receiverValue)
           
 StackValue generateThisOrOuter(ClassDescriptor calleeContainingClass, boolean isSuper)
           
 StackValue generateTryExpression(JetTryExpression expression, boolean isStatement)
           
 StackValue generateWhenExpression(JetWhenExpression expression, boolean isStatement)
           
 StackValue genLazy(JetElement expr, org.jetbrains.org.objectweb.asm.Type type)
           
 StackValue genQualified(StackValue receiver, JetElement selector)
           
 void genVarargs(VarargValueArgument valueArgument, JetType outType)
           
 BindingContext getBindingContext()
           
 com.intellij.util.containers.Stack<org.jetbrains.kotlin.codegen.ExpressionCodegen.BlockStackElement> getBlockStackElements()
           
static CompileTimeConstant getCompileTimeConstant(JetExpression expression, BindingContext bindingContext)
           
 MethodContext getContext()
           
 FrameMap getFrameMap()
           
 NameGenerator getInlineNameGenerator()
           
protected  CallGenerator getOrCreateCallGenerator(CallableDescriptor descriptor, JetElement callElement, ReifiedTypeParameterMappings reifiedTypeParameterMappings)
           
 CallGenerator getOrCreateCallGenerator(FunctionDescriptor descriptor, JetNamedFunction function)
           
 MemberCodegen<?> getParentCodegen()
           
 org.jetbrains.org.objectweb.asm.Type getReturnType()
           
 GenerationState getState()
           
 boolean hasFinallyBlocks()
           
 int indexOfLocal(JetReferenceExpression lhs)
           
 org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(PropertyDescriptor propertyDescriptor, boolean forceField, JetSuperExpression superExpression, MethodKind methodKind, StackValue receiver)
           
 org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(PropertyDescriptor propertyDescriptor, boolean forceField, JetSuperExpression superExpression, StackValue receiver)
           
 void invokeAppend(JetExpression 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)
           
 void markLineNumber(JetElement statement, boolean markEndOffset)
           
 void markLineNumberAfterInlineIfNeeded()
           
 void markStartLineNumber(JetElement element)
           
 void newArrayInstruction(JetType arrayType)
           
 void propagateChildReifiedTypeParametersUsages(ReifiedTypeParametersUsages usages)
           
 void pushClosureOnStack(ClassDescriptor classDescriptor, boolean putThis, CallGenerator callGenerator)
           
 void putReifierMarkerIfTypeIsReifiedParameter(JetType type, java.lang.String markerMethodName)
           
 void putUnitInstanceOntoStackForNonExhaustiveWhen(JetWhenExpression expression)
           
 void returnExpression(JetExpression expr)
           
 void setShouldMarkLineNumbers(boolean shouldMarkLineNumbers)
           
 java.lang.String toString()
           
 StackValue visitAnnotatedExpression(JetAnnotatedExpression expression, StackValue receiver)
           
 StackValue visitArrayAccessExpression(JetArrayAccessExpression expression, StackValue receiver)
           
 StackValue visitBinaryExpression(JetBinaryExpression expression, StackValue receiver)
           
 StackValue visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression, StackValue receiver)
           
 StackValue visitBlockExpression(JetBlockExpression expression, StackValue receiver)
           
 StackValue visitBreakExpression(JetBreakExpression expression, StackValue receiver)
           
 StackValue visitCallableReferenceExpression(JetCallableReferenceExpression expression, StackValue data)
           
 StackValue visitCallExpression(JetCallExpression expression, StackValue receiver)
           
 StackValue visitClass(JetClass klass, StackValue data)
           
 StackValue visitClassLiteralExpression(JetClassLiteralExpression expression, StackValue data)
           
 StackValue visitConstantExpression(JetConstantExpression expression, StackValue receiver)
           
 StackValue visitContinueExpression(JetContinueExpression expression, StackValue receiver)
           
 StackValue visitDotQualifiedExpression(JetDotQualifiedExpression expression, StackValue receiver)
           
 StackValue visitDoWhileExpression(JetDoWhileExpression expression, StackValue receiver)
           
 StackValue visitExpression(JetExpression expression, StackValue receiver)
           
 StackValue visitForExpression(JetForExpression forExpression, StackValue receiver)
           
 StackValue visitFunctionLiteralExpression(JetFunctionLiteralExpression expression, StackValue receiver)
           
 StackValue visitIfExpression(JetIfExpression expression, StackValue receiver)
           
 StackValue visitIsExpression(JetIsExpression expression, StackValue receiver)
           
 StackValue visitLabeledExpression(JetLabeledExpression expression, StackValue receiver)
           
 StackValue visitMultiDeclaration(JetMultiDeclaration multiDeclaration, StackValue receiver)
           
 StackValue visitNamedFunction(JetNamedFunction function, StackValue data)
           
 StackValue visitNamedFunction(JetNamedFunction function, StackValue data, boolean isStatement)
           
 StackValue visitObjectDeclaration(JetObjectDeclaration declaration, StackValue data)
           
 StackValue visitObjectLiteralExpression(JetObjectLiteralExpression expression, StackValue receiver)
           
 StackValue visitParenthesizedExpression(JetParenthesizedExpression expression, StackValue receiver)
           
 StackValue visitPostfixExpression(JetPostfixExpression expression, StackValue receiver)
           
 StackValue visitPrefixExpression(JetPrefixExpression expression, StackValue receiver)
           
 StackValue visitProperty(JetProperty property, StackValue receiver)
           
 StackValue visitReturnExpression(JetReturnExpression expression, StackValue receiver)
           
 StackValue visitSafeQualifiedExpression(JetSafeQualifiedExpression expression, StackValue unused)
           
 StackValue visitSimpleNameExpression(JetSimpleNameExpression expression, StackValue receiver)
           
 StackValue visitStringTemplateExpression(JetStringTemplateExpression expression, StackValue receiver)
           
 StackValue visitSuperExpression(JetSuperExpression expression, StackValue data)
           
 StackValue visitThisExpression(JetThisExpression expression, StackValue receiver)
           
 StackValue visitThrowExpression(JetThrowExpression expression, StackValue receiver)
           
 StackValue visitTryExpression(JetTryExpression expression, StackValue receiver)
           
 StackValue visitWhenExpression(JetWhenExpression expression, StackValue receiver)
           
 StackValue visitWhileExpression(JetWhileExpression expression, StackValue receiver)
           
 
Methods inherited from class org.jetbrains.kotlin.psi.JetVisitor
visitAnnotation, visitAnnotationEntry, visitAnonymousInitializer, visitArgument, visitBlockStringTemplateEntry, visitCatchSection, visitClassBody, visitConstructorCalleeExpression, visitConstructorDelegationCall, visitDeclaration, visitDelegationByExpressionSpecifier, visitDelegationSpecifier, visitDelegationSpecifierList, visitDelegationToSuperCallSpecifier, visitDelegationToSuperClassSpecifier, visitDoubleColonExpression, visitDynamicType, visitEnumEntry, visitEscapeStringTemplateEntry, visitExpressionWithLabel, visitFileAnnotationList, visitFinallySection, visitFunctionType, visitImportDirective, visitImportList, visitInitializerList, visitJetElement, visitJetFile, visitLiteralStringTemplateEntry, visitLoopExpression, visitModifierList, visitMultiDeclarationEntry, visitNamedDeclaration, visitNullableType, visitObjectDeclarationName, visitPackageDirective, visitParameter, visitParameterList, visitPrimaryConstructor, visitPropertyAccessor, visitPropertyDelegate, visitQualifiedExpression, visitReferenceExpression, visitRootPackageExpression, visitScript, visitSecondaryConstructor, visitSelfType, visitSimpleNameStringTemplateEntry, visitStringTemplateEntry, visitStringTemplateEntryWithExpression, visitTypeArgumentList, visitTypeConstraint, visitTypeConstraintList, visitTypedef, 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<JetElement,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
                                                                                                        JetObjectLiteralExpression literal)

genQualified

public StackValue genQualified(StackValue receiver,
                               JetElement selector)

gen

public StackValue gen(JetElement expr)

gen

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

genLazy

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

visitClass

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

visitObjectDeclaration

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

visitExpression

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

visitSuperExpression

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

expressionType

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

expressionJetType

@Nullable
public JetType expressionJetType(@Nullable
                                          JetExpression expression)

visitParenthesizedExpression

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

visitAnnotatedExpression

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

visitIfExpression

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

visitWhileExpression

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

visitDoWhileExpression

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

visitForExpression

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

visitBreakExpression

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

visitContinueExpression

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

visitConstantExpression

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

getCompileTimeConstant

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

visitStringTemplateExpression

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

visitBlockExpression

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

visitNamedFunction

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

visitNamedFunction

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

visitFunctionLiteralExpression

public StackValue visitFunctionLiteralExpression(@NotNull
                                                 JetFunctionLiteralExpression expression,
                                                 StackValue receiver)
Overrides:
visitFunctionLiteralExpression in class JetVisitor<StackValue,StackValue>

visitObjectLiteralExpression

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

pushClosureOnStack

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

isShouldMarkLineNumbers

public boolean isShouldMarkLineNumbers()

setShouldMarkLineNumbers

public void setShouldMarkLineNumbers(boolean shouldMarkLineNumbers)

markStartLineNumber

public void markStartLineNumber(@NotNull
                                JetElement element)

markLineNumber

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

markLineNumberAfterInlineIfNeeded

public void markLineNumberAfterInlineIfNeeded()

hasFinallyBlocks

public boolean hasFinallyBlocks()

visitReturnExpression

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

generateFinallyBlocksIfNeeded

public void generateFinallyBlocksIfNeeded(org.jetbrains.org.objectweb.asm.Type returnType)

returnExpression

public void returnExpression(JetExpression expr)

visitSimpleNameExpression

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

findLocalOrCapturedValue

@Nullable
public StackValue findLocalOrCapturedValue(@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
                                                                                             JetSuperExpression superExpression,
                                                                                             @NotNull
                                                                                             StackValue receiver)

intermediateValueForProperty

public org.jetbrains.kotlin.codegen.StackValue.Property intermediateValueForProperty(@NotNull
                                                                                     PropertyDescriptor propertyDescriptor,
                                                                                     boolean forceField,
                                                                                     @Nullable
                                                                                     JetSuperExpression superExpression,
                                                                                     @NotNull
                                                                                     MethodKind methodKind,
                                                                                     StackValue receiver)

visitCallExpression

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

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)

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)

getOrCreateCallGenerator

@NotNull
protected CallGenerator getOrCreateCallGenerator(@NotNull
                                                         CallableDescriptor descriptor,
                                                         @Nullable
                                                         JetElement callElement,
                                                         @Nullable
                                                         ReifiedTypeParameterMappings reifiedTypeParameterMappings)

getOrCreateCallGenerator

@NotNull
public CallGenerator getOrCreateCallGenerator(@NotNull
                                                      FunctionDescriptor descriptor,
                                                      @Nullable
                                                      JetNamedFunction function)

generateReceiverValue

@NotNull
public StackValue generateReceiverValue(@NotNull
                                                ReceiverValue receiverValue)

generateThisOrOuter

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

genVarargs

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

indexOfLocal

public int indexOfLocal(JetReferenceExpression lhs)

visitClassLiteralExpression

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

visitCallableReferenceExpression

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

visitDotQualifiedExpression

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

visitSafeQualifiedExpression

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

visitBinaryExpression

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

invokeAppend

public void invokeAppend(JetExpression expr)

visitLabeledExpression

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

visitPrefixExpression

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

visitPostfixExpression

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

visitProperty

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

visitMultiDeclaration

public StackValue visitMultiDeclaration(@NotNull
                                        JetMultiDeclaration multiDeclaration,
                                        StackValue receiver)
Overrides:
visitMultiDeclaration in class JetVisitor<StackValue,StackValue>

generateConstructorCall

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

generateNewArray

public StackValue generateNewArray(@NotNull
                                   JetCallExpression expression,
                                   @NotNull
                                   JetType arrayType)

newArrayInstruction

public void newArrayInstruction(@NotNull
                                JetType arrayType)

visitArrayAccessExpression

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

visitThrowExpression

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

visitThisExpression

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

visitTryExpression

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

generateTryExpression

public StackValue generateTryExpression(JetTryExpression expression,
                                        boolean isStatement)

visitBinaryWithTypeRHSExpression

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

visitIsExpression

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

putReifierMarkerIfTypeIsReifiedParameter

public void putReifierMarkerIfTypeIsReifiedParameter(@NotNull
                                                     JetType type,
                                                     @NotNull
                                                     java.lang.String markerMethodName)

propagateChildReifiedTypeParametersUsages

public void propagateChildReifiedTypeParametersUsages(@NotNull
                                                      ReifiedTypeParametersUsages usages)

visitWhenExpression

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

generateWhenExpression

public StackValue generateWhenExpression(JetWhenExpression expression,
                                         boolean isStatement)

putUnitInstanceOntoStackForNonExhaustiveWhen

public void putUnitInstanceOntoStackForNonExhaustiveWhen(@NotNull
                                                         JetWhenExpression expression)

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)