org.jetbrains.kotlin.types.expressions
Class ExpressionTypingVisitorDispatcher

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

public abstract class ExpressionTypingVisitorDispatcher
extends KtVisitor<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(KtElement callElement, KtSimpleNameExpression operationSign, ValueArgument leftArgument, KtExpression right, ExpressionTypingContext context)
           
 void checkStatementType(KtExpression expression, ExpressionTypingContext context)
           
protected  ExpressionTypingVisitorForStatements createStatementVisitor(ExpressionTypingContext context)
           
 ExpressionTypingComponents getComponents()
           
protected abstract  ExpressionTypingVisitorForStatements getStatementVisitor(ExpressionTypingContext context)
           
 JetTypeInfo getTypeInfo(KtExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo getTypeInfo(KtExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 JetTypeInfo safeGetTypeInfo(KtExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitAnnotatedExpression(KtAnnotatedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitArrayAccessExpression(KtArrayAccessExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBinaryExpression(KtBinaryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBinaryWithTypeRHSExpression(KtBinaryExpressionWithTypeRHS expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBlockExpression(KtBlockExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitBreakExpression(KtBreakExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitCallableReferenceExpression(KtCallableReferenceExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitCallExpression(KtCallExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitClassLiteralExpression(KtClassLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitConstantExpression(KtConstantExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitContinueExpression(KtContinueExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitDeclaration(KtDeclaration dcl, ExpressionTypingContext data)
           
 JetTypeInfo visitDoWhileExpression(KtDoWhileExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitForExpression(KtForExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitFunctionLiteralExpression(KtFunctionLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitIfExpression(KtIfExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitIsExpression(KtIsExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitJetElement(KtElement element, ExpressionTypingContext data)
           
 JetTypeInfo visitLabeledExpression(KtLabeledExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitNamedFunction(KtNamedFunction function, ExpressionTypingContext data)
           
 JetTypeInfo visitObjectLiteralExpression(KtObjectLiteralExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitParenthesizedExpression(KtParenthesizedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitQualifiedExpression(KtQualifiedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitReturnExpression(KtReturnExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitRootPackageExpression(KtRootPackageExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitSimpleNameExpression(KtSimpleNameExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitStringTemplateExpression(KtStringTemplateExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitSuperExpression(KtSuperExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitThisExpression(KtThisExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitThrowExpression(KtThrowExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitTryExpression(KtTryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitUnaryExpression(KtUnaryExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitWhenExpression(KtWhenExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitWhileExpression(KtWhileExpression expression, ExpressionTypingContext data)
           
 
Methods inherited from class org.jetbrains.kotlin.psi.KtVisitor
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
                                             KtElement callElement,
                                             @NotNull
                                             KtSimpleNameExpression operationSign,
                                             @NotNull
                                             ValueArgument leftArgument,
                                             @Nullable
                                             KtExpression right,
                                             @NotNull
                                             ExpressionTypingContext context)

safeGetTypeInfo

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

getTypeInfo

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

getTypeInfo

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

createStatementVisitor

protected ExpressionTypingVisitorForStatements createStatementVisitor(ExpressionTypingContext context)

checkStatementType

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

visitFunctionLiteralExpression

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

visitNamedFunction

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

visitThrowExpression

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

visitReturnExpression

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

visitContinueExpression

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

visitIfExpression

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

visitTryExpression

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

visitForExpression

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

visitWhileExpression

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

visitDoWhileExpression

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

visitBreakExpression

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

visitIsExpression

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

visitWhenExpression

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

visitSimpleNameExpression

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

visitParenthesizedExpression

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

visitConstantExpression

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

visitBinaryWithTypeRHSExpression

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

visitThisExpression

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

visitSuperExpression

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

visitBlockExpression

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

visitClassLiteralExpression

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

visitCallableReferenceExpression

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

visitObjectLiteralExpression

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

visitQualifiedExpression

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

visitCallExpression

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

visitUnaryExpression

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

visitLabeledExpression

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

visitBinaryExpression

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

visitArrayAccessExpression

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

visitDeclaration

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

visitRootPackageExpression

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

visitStringTemplateExpression

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

visitAnnotatedExpression

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

visitJetElement

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