org.jetbrains.kotlin.types.expressions
Class BasicExpressionTypingVisitor

java.lang.Object
  extended by com.intellij.psi.PsiElementVisitor
      extended by org.jetbrains.kotlin.psi.KtVisitor<KotlinTypeInfo,ExpressionTypingContext>
          extended by org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitor
              extended by org.jetbrains.kotlin.types.expressions.BasicExpressionTypingVisitor

public class BasicExpressionTypingVisitor
extends ExpressionTypingVisitor


Field Summary
 
Fields inherited from class org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitor
components, facade
 
Fields inherited from class com.intellij.psi.PsiElementVisitor
EMPTY_VISITOR
 
Constructor Summary
protected BasicExpressionTypingVisitor(org.jetbrains.kotlin.types.expressions.ExpressionTypingInternals facade)
           
 
Method Summary
 KotlinTypeInfo checkInExpression(KtElement callElement, KtSimpleNameExpression operationSign, ValueArgument leftArgument, KtExpression right, ExpressionTypingContext context)
           
 boolean checkLValue(BindingTrace trace, ExpressionTypingContext context, KtExpression expressionWithParenthesis, KtExpression rightHandSide, KtOperationExpression operationExpression)
           
 KotlinType getDefaultType(com.intellij.psi.tree.IElementType constantType)
           
 KotlinTypeInfo getTypeInfoForBinaryCall(Name name, ExpressionTypingContext context, KtBinaryExpression binaryExpression)
           
protected  void resolveAnnotationsOnExpression(KtAnnotatedExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitAnnotatedExpression(KtAnnotatedExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitAnnotatedExpression(KtAnnotatedExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 KotlinTypeInfo visitArrayAccessExpression(KtArrayAccessExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitBinaryExpression(KtBinaryExpression expression, ExpressionTypingContext contextWithExpectedType)
           
 KotlinTypeInfo visitBinaryWithTypeRHSExpression(KtBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitBlockExpression(KtBlockExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitCallableReferenceExpression(KtCallableReferenceExpression expression, ExpressionTypingContext c)
           
 KotlinTypeInfo visitCallExpression(KtCallExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitClass(KtClass klass, ExpressionTypingContext context)
           
 KotlinTypeInfo visitClassLiteralExpression(KtClassLiteralExpression expression, ExpressionTypingContext c)
           
 KotlinTypeInfo visitConstantExpression(KtConstantExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitDeclaration(KtDeclaration dcl, ExpressionTypingContext context)
           
 KotlinTypeInfo visitKtElement(KtElement element, ExpressionTypingContext context)
           
 KotlinTypeInfo visitLabeledExpression(KtLabeledExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitLabeledExpression(KtLabeledExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 KotlinTypeInfo visitObjectLiteralExpression(KtObjectLiteralExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitParenthesizedExpression(KtParenthesizedExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitProperty(KtProperty property, ExpressionTypingContext context)
           
 KotlinTypeInfo visitQualifiedExpression(KtQualifiedExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitSimpleNameExpression(KtSimpleNameExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitStringTemplateExpression(KtStringTemplateExpression expression, ExpressionTypingContext contextWithExpectedType)
           
 KotlinTypeInfo visitSuperExpression(KtSuperExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitThisExpression(KtThisExpression expression, ExpressionTypingContext context)
           
 KotlinTypeInfo visitUnaryExpression(KtUnaryExpression expression, ExpressionTypingContext contextWithExpectedType)
           
 
Methods inherited from class org.jetbrains.kotlin.psi.KtVisitor
visitAnnotation, visitAnnotationEntry, visitAnnotationUseSiteTarget, visitAnonymousInitializer, visitArgument, visitBlockStringTemplateEntry, visitBreakExpression, visitCatchSection, visitClassBody, visitClassInitializer, visitClassOrObject, visitConstructorCalleeExpression, visitConstructorDelegationCall, visitContinueExpression, visitDelegatedSuperTypeEntry, visitDestructuringDeclaration, visitDestructuringDeclarationEntry, visitDotQualifiedExpression, visitDoubleColonExpression, visitDoWhileExpression, visitDynamicType, visitEnumEntry, visitEscapeStringTemplateEntry, visitExpression, visitExpressionWithLabel, visitFileAnnotationList, visitFinallySection, visitForExpression, visitFunctionType, visitIfExpression, visitImportDirective, visitImportList, visitInitializerList, visitIsExpression, visitKtFile, visitLambdaExpression, visitLiteralStringTemplateEntry, visitLoopExpression, visitModifierList, visitNamedDeclaration, visitNamedFunction, visitNullableType, visitObjectDeclaration, visitPackageDirective, visitParameter, visitParameterList, visitPostfixExpression, visitPrefixExpression, visitPrimaryConstructor, visitPropertyAccessor, visitPropertyDelegate, visitReferenceExpression, visitReturnExpression, visitSafeQualifiedExpression, visitScript, visitScriptInitializer, visitSecondaryConstructor, visitSelfType, visitSimpleNameStringTemplateEntry, visitStringTemplateEntry, visitStringTemplateEntryWithExpression, visitSuperTypeCallEntry, visitSuperTypeEntry, visitSuperTypeList, visitSuperTypeListEntry, visitThrowExpression, visitTryExpression, visitTypeAlias, visitTypeArgumentList, visitTypeConstraint, visitTypeConstraintList, visitTypeParameter, visitTypeParameterList, visitTypeProjection, visitTypeReference, visitUserType, visitValueArgumentList, visitWhenConditionInRange, visitWhenConditionIsPattern, visitWhenConditionWithExpression, visitWhenEntry, visitWhenExpression, visitWhileExpression
 
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
 

Constructor Detail

BasicExpressionTypingVisitor

protected BasicExpressionTypingVisitor(@NotNull
                                       org.jetbrains.kotlin.types.expressions.ExpressionTypingInternals facade)
Method Detail

visitSimpleNameExpression

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

visitParenthesizedExpression

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

visitConstantExpression

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

getDefaultType

@NotNull
public KotlinType getDefaultType(com.intellij.psi.tree.IElementType constantType)

visitBinaryWithTypeRHSExpression

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

visitThisExpression

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

visitSuperExpression

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

visitBlockExpression

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

visitClassLiteralExpression

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

visitCallableReferenceExpression

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

visitObjectLiteralExpression

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

visitQualifiedExpression

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

visitCallExpression

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

visitUnaryExpression

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

visitLabeledExpression

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

visitLabeledExpression

@NotNull
public KotlinTypeInfo visitLabeledExpression(@NotNull
                                                     KtLabeledExpression expression,
                                                     @NotNull
                                                     ExpressionTypingContext context,
                                                     boolean isStatement)

checkLValue

public boolean checkLValue(@NotNull
                           BindingTrace trace,
                           @NotNull
                           ExpressionTypingContext context,
                           @NotNull
                           KtExpression expressionWithParenthesis,
                           @Nullable
                           KtExpression rightHandSide,
                           @NotNull
                           KtOperationExpression operationExpression)
Returns:
true iff expression can be assigned to

visitBinaryExpression

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

checkInExpression

@NotNull
public KotlinTypeInfo checkInExpression(@NotNull
                                                KtElement callElement,
                                                @NotNull
                                                KtSimpleNameExpression operationSign,
                                                @NotNull
                                                ValueArgument leftArgument,
                                                @Nullable
                                                KtExpression right,
                                                @NotNull
                                                ExpressionTypingContext context)

visitArrayAccessExpression

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

visitClass

public KotlinTypeInfo visitClass(@NotNull
                                 KtClass klass,
                                 ExpressionTypingContext context)
Overrides:
visitClass in class KtVisitor<KotlinTypeInfo,ExpressionTypingContext>

visitProperty

public KotlinTypeInfo visitProperty(@NotNull
                                    KtProperty property,
                                    ExpressionTypingContext context)
Overrides:
visitProperty in class KtVisitor<KotlinTypeInfo,ExpressionTypingContext>

getTypeInfoForBinaryCall

@NotNull
public KotlinTypeInfo getTypeInfoForBinaryCall(@NotNull
                                                       Name name,
                                                       @NotNull
                                                       ExpressionTypingContext context,
                                                       @NotNull
                                                       KtBinaryExpression binaryExpression)

visitDeclaration

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

visitStringTemplateExpression

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

visitAnnotatedExpression

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

visitAnnotatedExpression

public KotlinTypeInfo visitAnnotatedExpression(KtAnnotatedExpression expression,
                                               ExpressionTypingContext context,
                                               boolean isStatement)

resolveAnnotationsOnExpression

protected void resolveAnnotationsOnExpression(KtAnnotatedExpression expression,
                                              ExpressionTypingContext context)

visitKtElement

public KotlinTypeInfo visitKtElement(@NotNull
                                     KtElement element,
                                     ExpressionTypingContext context)
Overrides:
visitKtElement in class KtVisitor<KotlinTypeInfo,ExpressionTypingContext>