org.jetbrains.kotlin.types.expressions
Class ExpressionTypingVisitorDispatcher

java.lang.Object
  extended by com.intellij.psi.PsiElementVisitor
      extended by org.jetbrains.kotlin.psi.JetVisitor<JetTypeInfo,ExpressionTypingContext>
          extended by org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher
Direct Known Subclasses:
ExpressionTypingVisitorDispatcher.ForBlock, ExpressionTypingVisitorDispatcher.ForDeclarations

public abstract class ExpressionTypingVisitorDispatcher
extends JetVisitor<JetTypeInfo,ExpressionTypingContext>


Nested Class Summary
static class ExpressionTypingVisitorDispatcher.ForBlock
           
static class ExpressionTypingVisitorDispatcher.ForDeclarations
           
 
Field Summary
protected  BasicExpressionTypingVisitor basic
           
protected  ControlStructureTypingVisitor controlStructures
           
protected  FunctionsTypingVisitor functions
           
protected  PatternMatchingTypingVisitor patterns
           
static PerformanceCounter typeInfoPerfCounter
           
 
Fields inherited from class com.intellij.psi.PsiElementVisitor
EMPTY_VISITOR
 
Method Summary
 JetTypeInfo checkInExpression(JetElement callElement, JetSimpleNameExpression operationSign, ValueArgument leftArgument, JetExpression right, ExpressionTypingContext context)
           
 void checkStatementType(JetExpression expression, ExpressionTypingContext context)
           
protected  ExpressionTypingVisitorForStatements createStatementVisitor(ExpressionTypingContext context)
           
 ExpressionTypingComponents getComponents()
           
protected abstract  ExpressionTypingVisitorForStatements getStatementVisitor(ExpressionTypingContext context)
           
 JetTypeInfo getTypeInfo(JetExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo getTypeInfo(JetExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 JetTypeInfo safeGetTypeInfo(JetExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitAnnotatedExpression(JetAnnotatedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitArrayAccessExpression(JetArrayAccessExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBinaryExpression(JetBinaryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBlockExpression(JetBlockExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBreakExpression(JetBreakExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitCallableReferenceExpression(JetCallableReferenceExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitCallExpression(JetCallExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitClassLiteralExpression(JetClassLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitConstantExpression(JetConstantExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitContinueExpression(JetContinueExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitDeclaration(JetDeclaration dcl, ExpressionTypingContext data)
           
 JetTypeInfo visitDoWhileExpression(JetDoWhileExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitForExpression(JetForExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitFunctionLiteralExpression(JetFunctionLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitIfExpression(JetIfExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitIsExpression(JetIsExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitJetElement(JetElement element, ExpressionTypingContext data)
           
 JetTypeInfo visitLabeledExpression(JetLabeledExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitNamedFunction(JetNamedFunction function, ExpressionTypingContext data)
           
 JetTypeInfo visitObjectLiteralExpression(JetObjectLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitParenthesizedExpression(JetParenthesizedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitQualifiedExpression(JetQualifiedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitReturnExpression(JetReturnExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitRootPackageExpression(JetRootPackageExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitSimpleNameExpression(JetSimpleNameExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitStringTemplateExpression(JetStringTemplateExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitSuperExpression(JetSuperExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitThisExpression(JetThisExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitThrowExpression(JetThrowExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitTryExpression(JetTryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitUnaryExpression(JetUnaryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitWhenExpression(JetWhenExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitWhileExpression(JetWhileExpression expression, ExpressionTypingContext data)
           
 
Methods inherited from class org.jetbrains.kotlin.psi.JetVisitor
visitAnnotation, visitAnnotationEntry, visitAnnotationUseSiteTarget, visitAnonymousInitializer, visitArgument, visitBlockStringTemplateEntry, visitCatchSection, visitClass, visitClassBody, visitClassOrObject, visitConstructorCalleeExpression, visitConstructorDelegationCall, visitDelegationByExpressionSpecifier, visitDelegationSpecifier, visitDelegationSpecifierList, visitDelegationToSuperCallSpecifier, visitDelegationToSuperClassSpecifier, visitDotQualifiedExpression, visitDoubleColonExpression, visitDynamicType, visitEnumEntry, visitEscapeStringTemplateEntry, visitExpression, visitExpressionWithLabel, visitFileAnnotationList, visitFinallySection, visitFunctionType, visitImportDirective, visitImportList, visitInitializerList, visitJetFile, visitLiteralStringTemplateEntry, visitLoopExpression, visitModifierList, visitMultiDeclaration, visitMultiDeclarationEntry, visitNamedDeclaration, visitNullableType, visitObjectDeclaration, visitObjectDeclarationName, visitPackageDirective, visitParameter, visitParameterList, visitPostfixExpression, visitPrefixExpression, visitPrimaryConstructor, visitProperty, visitPropertyAccessor, visitPropertyDelegate, visitReferenceExpression, visitSafeQualifiedExpression, visitScript, visitSecondaryConstructor, visitSelfType, visitSimpleNameStringTemplateEntry, visitStringTemplateEntry, visitStringTemplateEntryWithExpression, visitTypeArgumentList, visitTypeConstraint, visitTypeConstraintList, visitTypedef, visitTypeParameter, visitTypeParameterList, visitTypeProjection, visitTypeReference, 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, toString, wait, wait, wait
 

Field Detail

typeInfoPerfCounter

public static final PerformanceCounter typeInfoPerfCounter

basic

protected final BasicExpressionTypingVisitor basic

functions

protected final FunctionsTypingVisitor functions

controlStructures

protected final ControlStructureTypingVisitor controlStructures

patterns

protected final PatternMatchingTypingVisitor patterns
Method Detail

getStatementVisitor

protected abstract ExpressionTypingVisitorForStatements getStatementVisitor(@NotNull
                                                                            ExpressionTypingContext context)

getComponents

@NotNull
public ExpressionTypingComponents getComponents()

checkInExpression

@NotNull
public JetTypeInfo checkInExpression(@NotNull
                                             JetElement callElement,
                                             @NotNull
                                             JetSimpleNameExpression operationSign,
                                             @NotNull
                                             ValueArgument leftArgument,
                                             @Nullable
                                             JetExpression right,
                                             @NotNull
                                             ExpressionTypingContext context)

safeGetTypeInfo

@NotNull
public final JetTypeInfo safeGetTypeInfo(@NotNull
                                                 JetExpression expression,
                                                 ExpressionTypingContext context)

getTypeInfo

@NotNull
public final JetTypeInfo getTypeInfo(@NotNull
                                             JetExpression expression,
                                             ExpressionTypingContext context)

getTypeInfo

@NotNull
public final JetTypeInfo getTypeInfo(@NotNull
                                             JetExpression expression,
                                             ExpressionTypingContext context,
                                             boolean isStatement)

createStatementVisitor

protected ExpressionTypingVisitorForStatements createStatementVisitor(ExpressionTypingContext context)

checkStatementType

public void checkStatementType(@NotNull
                               JetExpression expression,
                               ExpressionTypingContext context)

visitFunctionLiteralExpression

public JetTypeInfo visitFunctionLiteralExpression(@NotNull
                                                  JetFunctionLiteralExpression expression,
                                                  ExpressionTypingContext data)
Overrides:
visitFunctionLiteralExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitNamedFunction

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

visitThrowExpression

public JetTypeInfo visitThrowExpression(@NotNull
                                        JetThrowExpression expression,
                                        ExpressionTypingContext data)
Overrides:
visitThrowExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitReturnExpression

public JetTypeInfo visitReturnExpression(@NotNull
                                         JetReturnExpression expression,
                                         ExpressionTypingContext data)
Overrides:
visitReturnExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitContinueExpression

public JetTypeInfo visitContinueExpression(@NotNull
                                           JetContinueExpression expression,
                                           ExpressionTypingContext data)
Overrides:
visitContinueExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitIfExpression

public JetTypeInfo visitIfExpression(@NotNull
                                     JetIfExpression expression,
                                     ExpressionTypingContext data)
Overrides:
visitIfExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitTryExpression

public JetTypeInfo visitTryExpression(@NotNull
                                      JetTryExpression expression,
                                      ExpressionTypingContext data)
Overrides:
visitTryExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitForExpression

public JetTypeInfo visitForExpression(@NotNull
                                      JetForExpression expression,
                                      ExpressionTypingContext data)
Overrides:
visitForExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitWhileExpression

public JetTypeInfo visitWhileExpression(@NotNull
                                        JetWhileExpression expression,
                                        ExpressionTypingContext data)
Overrides:
visitWhileExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitDoWhileExpression

public JetTypeInfo visitDoWhileExpression(@NotNull
                                          JetDoWhileExpression expression,
                                          ExpressionTypingContext data)
Overrides:
visitDoWhileExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitBreakExpression

public JetTypeInfo visitBreakExpression(@NotNull
                                        JetBreakExpression expression,
                                        ExpressionTypingContext data)
Overrides:
visitBreakExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitIsExpression

public JetTypeInfo visitIsExpression(@NotNull
                                     JetIsExpression expression,
                                     ExpressionTypingContext data)
Overrides:
visitIsExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitWhenExpression

public JetTypeInfo visitWhenExpression(@NotNull
                                       JetWhenExpression expression,
                                       ExpressionTypingContext data)
Overrides:
visitWhenExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitSimpleNameExpression

public JetTypeInfo visitSimpleNameExpression(@NotNull
                                             JetSimpleNameExpression expression,
                                             ExpressionTypingContext data)
Overrides:
visitSimpleNameExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitParenthesizedExpression

public JetTypeInfo visitParenthesizedExpression(@NotNull
                                                JetParenthesizedExpression expression,
                                                ExpressionTypingContext data)
Overrides:
visitParenthesizedExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitConstantExpression

public JetTypeInfo visitConstantExpression(@NotNull
                                           JetConstantExpression expression,
                                           ExpressionTypingContext data)
Overrides:
visitConstantExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitBinaryWithTypeRHSExpression

public JetTypeInfo visitBinaryWithTypeRHSExpression(@NotNull
                                                    JetBinaryExpressionWithTypeRHS expression,
                                                    ExpressionTypingContext data)
Overrides:
visitBinaryWithTypeRHSExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitThisExpression

public JetTypeInfo visitThisExpression(@NotNull
                                       JetThisExpression expression,
                                       ExpressionTypingContext data)
Overrides:
visitThisExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitSuperExpression

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

visitBlockExpression

public JetTypeInfo visitBlockExpression(@NotNull
                                        JetBlockExpression expression,
                                        ExpressionTypingContext data)
Overrides:
visitBlockExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitClassLiteralExpression

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

visitCallableReferenceExpression

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

visitObjectLiteralExpression

public JetTypeInfo visitObjectLiteralExpression(@NotNull
                                                JetObjectLiteralExpression expression,
                                                ExpressionTypingContext data)
Overrides:
visitObjectLiteralExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitQualifiedExpression

public JetTypeInfo visitQualifiedExpression(@NotNull
                                            JetQualifiedExpression expression,
                                            ExpressionTypingContext data)
Overrides:
visitQualifiedExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitCallExpression

public JetTypeInfo visitCallExpression(@NotNull
                                       JetCallExpression expression,
                                       ExpressionTypingContext data)
Overrides:
visitCallExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitUnaryExpression

public JetTypeInfo visitUnaryExpression(@NotNull
                                        JetUnaryExpression expression,
                                        ExpressionTypingContext data)
Overrides:
visitUnaryExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitLabeledExpression

public JetTypeInfo visitLabeledExpression(@NotNull
                                          JetLabeledExpression expression,
                                          ExpressionTypingContext data)
Overrides:
visitLabeledExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitBinaryExpression

public JetTypeInfo visitBinaryExpression(@NotNull
                                         JetBinaryExpression expression,
                                         ExpressionTypingContext data)
Overrides:
visitBinaryExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitArrayAccessExpression

public JetTypeInfo visitArrayAccessExpression(@NotNull
                                              JetArrayAccessExpression expression,
                                              ExpressionTypingContext data)
Overrides:
visitArrayAccessExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitDeclaration

public JetTypeInfo visitDeclaration(@NotNull
                                    JetDeclaration dcl,
                                    ExpressionTypingContext data)
Overrides:
visitDeclaration in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitRootPackageExpression

public JetTypeInfo visitRootPackageExpression(@NotNull
                                              JetRootPackageExpression expression,
                                              ExpressionTypingContext data)
Overrides:
visitRootPackageExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitStringTemplateExpression

public JetTypeInfo visitStringTemplateExpression(@NotNull
                                                 JetStringTemplateExpression expression,
                                                 ExpressionTypingContext data)
Overrides:
visitStringTemplateExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitAnnotatedExpression

public JetTypeInfo visitAnnotatedExpression(@NotNull
                                            JetAnnotatedExpression expression,
                                            ExpressionTypingContext data)
Overrides:
visitAnnotatedExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitJetElement

public JetTypeInfo visitJetElement(@NotNull
                                   JetElement element,
                                   ExpressionTypingContext data)
Overrides:
visitJetElement in class JetVisitor<JetTypeInfo,ExpressionTypingContext>