org.jetbrains.jet.lang.types.expressions
Class BasicExpressionTypingVisitor

java.lang.Object
  extended by com.intellij.psi.PsiElementVisitor
      extended by org.jetbrains.jet.lang.psi.JetVisitor<JetTypeInfo,ExpressionTypingContext>
          extended by org.jetbrains.jet.lang.types.expressions.BasicExpressionTypingVisitor

public class BasicExpressionTypingVisitor
extends JetVisitor<JetTypeInfo,ExpressionTypingContext>


Field Summary
protected  org.jetbrains.jet.lang.types.expressions.ExpressionTypingInternals facade
           
 
Constructor Summary
protected BasicExpressionTypingVisitor(org.jetbrains.jet.lang.types.expressions.ExpressionTypingInternals facade)
           
 
Method Summary
 JetTypeInfo checkInExpression(JetElement callElement, JetSimpleNameExpression operationSign, JetExpression left, JetExpression right, ExpressionTypingContext context)
           
static void checkLValue(BindingTrace trace, JetExpression expression)
           
 JetTypeInfo getTypeInfoForBinaryCall(JetScope scope, Name name, ExpressionTypingContext contextWithOldScope, JetBinaryExpression binaryExpression)
           
static boolean isCastErased(JetType supertype, JetType subtype, JetTypeChecker typeChecker)
          Check if assignment from supertype to subtype is erased.
 JetTypeInfo visitAnnotatedExpression(JetAnnotatedExpression expression, ExpressionTypingContext data)
           
 JetTypeInfo visitArrayAccessExpression(JetArrayAccessExpression expression, ExpressionTypingContext context)
           
protected  JetType visitAssignment(JetBinaryExpression expression, ExpressionTypingContext context)
           
protected  JetType visitAssignmentOperation(JetBinaryExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitBinaryExpression(JetBinaryExpression expression, ExpressionTypingContext contextWithExpectedType)
           
 JetTypeInfo visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context)
           
 JetTypeInfo visitBlockExpression(JetBlockExpression expression, ExpressionTypingContext context)
           
static JetTypeInfo visitBlockExpression(JetBlockExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 JetTypeInfo visitCallableReferenceExpression(JetCallableReferenceExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitCallExpression(JetCallExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitConstantExpression(JetConstantExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitDeclaration(JetDeclaration dcl, ExpressionTypingContext context)
           
 JetTypeInfo visitJetElement(JetElement element, ExpressionTypingContext context)
           
 JetTypeInfo visitParenthesizedExpression(JetParenthesizedExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitParenthesizedExpression(JetParenthesizedExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 JetTypeInfo visitQualifiedExpression(JetQualifiedExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitRootNamespaceExpression(JetRootNamespaceExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitSimpleNameExpression(JetSimpleNameExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitStringTemplateExpression(JetStringTemplateExpression expression, ExpressionTypingContext contextWithExpectedType)
           
 JetTypeInfo visitSuperExpression(JetSuperExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitThisExpression(JetThisExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitUnaryExpression(JetUnaryExpression expression, ExpressionTypingContext context)
           
 JetTypeInfo visitUnaryExpression(JetUnaryExpression expression, ExpressionTypingContext context, boolean isStatement)
           
 
Methods inherited from class org.jetbrains.jet.lang.psi.JetVisitor
visitAnnotation, visitAnnotationEntry, visitAnonymousInitializer, visitArgument, visitBlockStringTemplateEntry, visitBreakExpression, visitCatchSection, visitClass, visitClassBody, visitClassObject, visitContinueExpression, visitDelegationByExpressionSpecifier, visitDelegationSpecifier, visitDelegationSpecifierList, visitDelegationToSuperCallSpecifier, visitDelegationToSuperClassSpecifier, visitDelegationToThisCall, visitDotQualifiedExpression, visitDoWhileExpression, visitEnumEntry, visitEscapeStringTemplateEntry, visitExpression, visitFinallySection, visitForExpression, visitFunctionLiteralExpression, visitFunctionType, visitIdeTemplate, visitIfExpression, visitImportDirective, visitInitializerList, visitIsExpression, visitJetFile, visitLabelQualifiedExpression, visitLiteralStringTemplateEntry, visitLoopExpression, visitModifierList, visitMultiDeclaration, visitMultiDeclarationEntry, visitNamedDeclaration, visitNamedFunction, visitNullableType, visitObjectDeclaration, visitObjectDeclarationName, visitObjectLiteralExpression, visitParameter, visitParameterList, visitPostfixExpression, visitPrefixExpression, visitProperty, visitPropertyAccessor, visitPropertyDelegate, visitReferenceExpression, visitReturnExpression, visitSafeQualifiedExpression, visitScript, visitSelfType, visitSimpleNameStringTemplateEntry, visitStringTemplateEntry, visitStringTemplateEntryWithExpression, visitThrowExpression, visitTryExpression, visitTypeArgumentList, visitTypeConstraint, visitTypeConstraintList, visitTypedef, visitTypeParameter, visitTypeParameterList, visitTypeProjection, visitTypeReference, visitUserType, visitValueArgumentList, visitWhenConditionExpression, visitWhenConditionInRange, visitWhenConditionIsPattern, 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
 

Field Detail

facade

protected final org.jetbrains.jet.lang.types.expressions.ExpressionTypingInternals facade
Constructor Detail

BasicExpressionTypingVisitor

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

visitSimpleNameExpression

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

visitParenthesizedExpression

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

visitParenthesizedExpression

public JetTypeInfo visitParenthesizedExpression(JetParenthesizedExpression expression,
                                                ExpressionTypingContext context,
                                                boolean isStatement)

visitConstantExpression

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

visitBinaryWithTypeRHSExpression

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

isCastErased

public static boolean isCastErased(@NotNull
                                   JetType supertype,
                                   @NotNull
                                   JetType subtype,
                                   @NotNull
                                   JetTypeChecker typeChecker)
Check if assignment from supertype to subtype is erased. It is an error in "is" statement and warning in "as".


visitThisExpression

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

visitSuperExpression

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

visitBlockExpression

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

visitBlockExpression

public static JetTypeInfo visitBlockExpression(JetBlockExpression expression,
                                               ExpressionTypingContext context,
                                               boolean isStatement)

visitCallableReferenceExpression

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

visitQualifiedExpression

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

visitCallExpression

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

visitUnaryExpression

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

visitUnaryExpression

public JetTypeInfo visitUnaryExpression(JetUnaryExpression expression,
                                        ExpressionTypingContext context,
                                        boolean isStatement)

checkLValue

public static void checkLValue(@NotNull
                               BindingTrace trace,
                               @NotNull
                               JetExpression expression)

visitBinaryExpression

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

checkInExpression

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

visitAssignmentOperation

protected JetType visitAssignmentOperation(JetBinaryExpression expression,
                                           ExpressionTypingContext context)

visitAssignment

protected JetType visitAssignment(JetBinaryExpression expression,
                                  ExpressionTypingContext context)

visitArrayAccessExpression

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

getTypeInfoForBinaryCall

@NotNull
public JetTypeInfo getTypeInfoForBinaryCall(JetScope scope,
                                                    Name name,
                                                    ExpressionTypingContext contextWithOldScope,
                                                    JetBinaryExpression binaryExpression)

visitDeclaration

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

visitRootNamespaceExpression

public JetTypeInfo visitRootNamespaceExpression(JetRootNamespaceExpression expression,
                                                ExpressionTypingContext context)
Overrides:
visitRootNamespaceExpression in class JetVisitor<JetTypeInfo,ExpressionTypingContext>

visitStringTemplateExpression

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

visitAnnotatedExpression

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

visitJetElement

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