org.jetbrains.kotlin.resolve.calls
Class ArgumentTypeResolver

java.lang.Object
  extended by org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver

public class ArgumentTypeResolver
extends java.lang.Object


Constructor Summary
ArgumentTypeResolver(TypeResolver typeResolver, CallResolver callResolver, ExpressionTypingServices expressionTypingServices, KotlinBuiltIns builtIns, ReflectionTypes reflectionTypes, ConstantExpressionEvaluator constantExpressionEvaluator, FunctionPlaceholders functionPlaceholders)
           
 
Method Summary
 void analyzeArgumentsAndRecordTypes(CallResolutionContext<?> context, ResolveArgumentsMode resolveArgumentsMode)
          Visits function call arguments and determines data flow information changes
 void checkTypesForFunctionArgumentsWithNoCallee(CallResolutionContext<?> context)
           
 void checkTypesWithNoCallee(CallResolutionContext<?> context)
           
 void checkTypesWithNoCallee(CallResolutionContext<?> context, ResolveArgumentsMode resolveFunctionArgumentBodies)
           
 KotlinTypeInfo getArgumentTypeInfo(KtExpression expression, CallResolutionContext<?> context, ResolveArgumentsMode resolveArgumentsMode)
           
static KtCallableReferenceExpression getCallableReferenceExpressionIfAny(KtExpression expression, CallResolutionContext<?> context)
           
 KotlinTypeInfo getCallableReferenceTypeInfo(KtExpression expression, KtCallableReferenceExpression callableReferenceExpression, CallResolutionContext<?> context, ResolveArgumentsMode resolveArgumentsMode)
           
static KtFunction getFunctionLiteralArgument(KtExpression expression, ResolutionContext context)
           
static KtFunction getFunctionLiteralArgumentIfAny(KtExpression expression, ResolutionContext context)
           
 KotlinTypeInfo getFunctionLiteralTypeInfo(KtExpression expression, KtFunction functionLiteral, CallResolutionContext<?> context, ResolveArgumentsMode resolveArgumentsMode)
           
 KotlinType getShapeTypeOfCallableReference(KtCallableReferenceExpression callableReferenceExpression, CallResolutionContext<?> context, boolean expectedTypeIsUnknown)
           
 KotlinType getShapeTypeOfFunctionLiteral(KtFunction function, LexicalScope scope, BindingTrace trace, boolean expectedTypeIsUnknown)
           
static boolean isFunctionLiteralArgument(KtExpression expression, ResolutionContext context)
           
static boolean isSubtypeOfForArgumentType(KotlinType actualType, KotlinType expectedType)
           
 KotlinType resolveTypeRefWithDefault(KtTypeReference returnTypeRef, LexicalScope scope, BindingTrace trace, KotlinType defaultValue)
           
 KotlinType updateResultArgumentTypeIfNotDenotable(ResolutionContext context, KtExpression expression)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArgumentTypeResolver

public ArgumentTypeResolver(@NotNull
                            TypeResolver typeResolver,
                            @NotNull
                            CallResolver callResolver,
                            @NotNull
                            ExpressionTypingServices expressionTypingServices,
                            @NotNull
                            KotlinBuiltIns builtIns,
                            @NotNull
                            ReflectionTypes reflectionTypes,
                            @NotNull
                            ConstantExpressionEvaluator constantExpressionEvaluator,
                            @NotNull
                            FunctionPlaceholders functionPlaceholders)
Method Detail

isSubtypeOfForArgumentType

public static boolean isSubtypeOfForArgumentType(@NotNull
                                                 KotlinType actualType,
                                                 @NotNull
                                                 KotlinType expectedType)

checkTypesWithNoCallee

public void checkTypesWithNoCallee(@NotNull
                                   CallResolutionContext<?> context)

checkTypesWithNoCallee

public void checkTypesWithNoCallee(@NotNull
                                   CallResolutionContext<?> context,
                                   @NotNull
                                   ResolveArgumentsMode resolveFunctionArgumentBodies)

checkTypesForFunctionArgumentsWithNoCallee

public void checkTypesForFunctionArgumentsWithNoCallee(@NotNull
                                                       CallResolutionContext<?> context)

isFunctionLiteralArgument

public static boolean isFunctionLiteralArgument(@NotNull
                                                KtExpression expression,
                                                @NotNull
                                                ResolutionContext context)

getFunctionLiteralArgument

@NotNull
public static KtFunction getFunctionLiteralArgument(@NotNull
                                                            KtExpression expression,
                                                            @NotNull
                                                            ResolutionContext context)

getFunctionLiteralArgumentIfAny

@Nullable
public static KtFunction getFunctionLiteralArgumentIfAny(@NotNull
                                                                  KtExpression expression,
                                                                  @NotNull
                                                                  ResolutionContext context)

getCallableReferenceExpressionIfAny

@Nullable
public static KtCallableReferenceExpression getCallableReferenceExpressionIfAny(@NotNull
                                                                                         KtExpression expression,
                                                                                         @NotNull
                                                                                         CallResolutionContext<?> context)

getArgumentTypeInfo

@NotNull
public KotlinTypeInfo getArgumentTypeInfo(@Nullable
                                                  KtExpression expression,
                                                  @NotNull
                                                  CallResolutionContext<?> context,
                                                  @NotNull
                                                  ResolveArgumentsMode resolveArgumentsMode)

getCallableReferenceTypeInfo

@NotNull
public KotlinTypeInfo getCallableReferenceTypeInfo(@NotNull
                                                           KtExpression expression,
                                                           @NotNull
                                                           KtCallableReferenceExpression callableReferenceExpression,
                                                           @NotNull
                                                           CallResolutionContext<?> context,
                                                           @NotNull
                                                           ResolveArgumentsMode resolveArgumentsMode)

getShapeTypeOfCallableReference

@Nullable
public KotlinType getShapeTypeOfCallableReference(@NotNull
                                                           KtCallableReferenceExpression callableReferenceExpression,
                                                           @NotNull
                                                           CallResolutionContext<?> context,
                                                           boolean expectedTypeIsUnknown)

getFunctionLiteralTypeInfo

@NotNull
public KotlinTypeInfo getFunctionLiteralTypeInfo(@NotNull
                                                         KtExpression expression,
                                                         @NotNull
                                                         KtFunction functionLiteral,
                                                         @NotNull
                                                         CallResolutionContext<?> context,
                                                         @NotNull
                                                         ResolveArgumentsMode resolveArgumentsMode)

getShapeTypeOfFunctionLiteral

@Nullable
public KotlinType getShapeTypeOfFunctionLiteral(@NotNull
                                                         KtFunction function,
                                                         @NotNull
                                                         LexicalScope scope,
                                                         @NotNull
                                                         BindingTrace trace,
                                                         boolean expectedTypeIsUnknown)

resolveTypeRefWithDefault

@Nullable
public KotlinType resolveTypeRefWithDefault(@Nullable
                                                     KtTypeReference returnTypeRef,
                                                     @NotNull
                                                     LexicalScope scope,
                                                     @NotNull
                                                     BindingTrace trace,
                                                     @Nullable
                                                     KotlinType defaultValue)

analyzeArgumentsAndRecordTypes

public void analyzeArgumentsAndRecordTypes(@NotNull
                                           CallResolutionContext<?> context,
                                           @NotNull
                                           ResolveArgumentsMode resolveArgumentsMode)
Visits function call arguments and determines data flow information changes


updateResultArgumentTypeIfNotDenotable

@Nullable
public KotlinType updateResultArgumentTypeIfNotDenotable(@NotNull
                                                                  ResolutionContext context,
                                                                  @NotNull
                                                                  KtExpression expression)