org.jetbrains.jet.lang.resolve.calls.model
Class VariableAsFunctionResolvedCall

java.lang.Object
  extended by org.jetbrains.jet.lang.resolve.calls.model.VariableAsFunctionResolvedCall
All Implemented Interfaces:
ResolvedCall<FunctionDescriptor>, ResolvedCallWithTrace<FunctionDescriptor>

public class VariableAsFunctionResolvedCall
extends java.lang.Object
implements ResolvedCallWithTrace<FunctionDescriptor>


Constructor Summary
VariableAsFunctionResolvedCall(ResolvedCallWithTrace<FunctionDescriptor> functionCall, ResolvedCallWithTrace<VariableDescriptor> variableCall)
           
 
Method Summary
 ResolvedCallImpl<FunctionDescriptor> getCallToCompleteTypeArgumentInference()
          //todo get rid of Impl class in the interface If the call has incomplete type parameters, it should be completed after resolution process is finished.
 FunctionDescriptor getCandidateDescriptor()
          A target callable descriptor as it was accessible in the corresponding scope, i.e.
 DataFlowInfoForArguments getDataFlowInfoForArguments()
           
 ExplicitReceiverKind getExplicitReceiverKind()
          Determines whether receiver argument or this object is substituted for explicit receiver
 ResolvedCallWithTrace<FunctionDescriptor> getFunctionCall()
           
 ReceiverValue getReceiverArgument()
          If the target was an extension function or property, this is the value for its receiver parameter
 FunctionDescriptor getResultingDescriptor()
          Type arguments are substituted.
 ResolutionStatus getStatus()
           
 ReceiverValue getThisObject()
          If the target was a member of a class, this is the object of that class to call it on
 DelegatingBindingTrace getTrace()
           
 java.util.Map<TypeParameterDescriptor,JetType> getTypeArguments()
          What's substituted for type parameters
 java.util.Map<ValueParameterDescriptor,ResolvedValueArgument> getValueArguments()
          Values (arguments) for value parameters
 java.util.List<ResolvedValueArgument> getValueArgumentsByIndex()
          Values (arguments) for value parameters indexed by parameter index
 ResolvedCallWithTrace<VariableDescriptor> getVariableCall()
           
 boolean hasIncompleteTypeParameters()
          Resolved call can have incomplete type parameters if ResolutionStatus is INCOMPLETE_TYPE_INFERENCE (might be completed successfully) or OTHER_ERROR (cannot be completed successfully, but if there's only one candidate, should be completed anyway).
 boolean isCompleted()
           
 boolean isDirty()
           
 boolean isSafeCall()
           
 void markCallAsCompleted()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VariableAsFunctionResolvedCall

public VariableAsFunctionResolvedCall(@NotNull
                                      ResolvedCallWithTrace<FunctionDescriptor> functionCall,
                                      @NotNull
                                      ResolvedCallWithTrace<VariableDescriptor> variableCall)
Method Detail

getFunctionCall

@NotNull
public ResolvedCallWithTrace<FunctionDescriptor> getFunctionCall()

getVariableCall

@NotNull
public ResolvedCallWithTrace<VariableDescriptor> getVariableCall()

getCandidateDescriptor

@NotNull
public FunctionDescriptor getCandidateDescriptor()
Description copied from interface: ResolvedCall
A target callable descriptor as it was accessible in the corresponding scope, i.e. with type arguments not substituted

Specified by:
getCandidateDescriptor in interface ResolvedCall<FunctionDescriptor>

getResultingDescriptor

@NotNull
public FunctionDescriptor getResultingDescriptor()
Description copied from interface: ResolvedCall
Type arguments are substituted. This descriptor is guaranteed to have NO declared type parameters

Specified by:
getResultingDescriptor in interface ResolvedCall<FunctionDescriptor>

getReceiverArgument

@NotNull
public ReceiverValue getReceiverArgument()
Description copied from interface: ResolvedCall
If the target was an extension function or property, this is the value for its receiver parameter

Specified by:
getReceiverArgument in interface ResolvedCall<FunctionDescriptor>

getThisObject

@NotNull
public ReceiverValue getThisObject()
Description copied from interface: ResolvedCall
If the target was a member of a class, this is the object of that class to call it on

Specified by:
getThisObject in interface ResolvedCall<FunctionDescriptor>

getExplicitReceiverKind

@NotNull
public ExplicitReceiverKind getExplicitReceiverKind()
Description copied from interface: ResolvedCall
Determines whether receiver argument or this object is substituted for explicit receiver

Specified by:
getExplicitReceiverKind in interface ResolvedCall<FunctionDescriptor>

getValueArguments

@NotNull
public java.util.Map<ValueParameterDescriptor,ResolvedValueArgument> getValueArguments()
Description copied from interface: ResolvedCall
Values (arguments) for value parameters

Specified by:
getValueArguments in interface ResolvedCall<FunctionDescriptor>

getValueArgumentsByIndex

@NotNull
public java.util.List<ResolvedValueArgument> getValueArgumentsByIndex()
Description copied from interface: ResolvedCall
Values (arguments) for value parameters indexed by parameter index

Specified by:
getValueArgumentsByIndex in interface ResolvedCall<FunctionDescriptor>

getTypeArguments

@NotNull
public java.util.Map<TypeParameterDescriptor,JetType> getTypeArguments()
Description copied from interface: ResolvedCall
What's substituted for type parameters

Specified by:
getTypeArguments in interface ResolvedCall<FunctionDescriptor>

getStatus

@NotNull
public ResolutionStatus getStatus()
Specified by:
getStatus in interface ResolvedCallWithTrace<FunctionDescriptor>

isDirty

public boolean isDirty()
Specified by:
isDirty in interface ResolvedCallWithTrace<FunctionDescriptor>

getTrace

public DelegatingBindingTrace getTrace()
Specified by:
getTrace in interface ResolvedCallWithTrace<FunctionDescriptor>

isSafeCall

public boolean isSafeCall()
Specified by:
isSafeCall in interface ResolvedCall<FunctionDescriptor>

hasIncompleteTypeParameters

public boolean hasIncompleteTypeParameters()
Description copied from interface: ResolvedCallWithTrace
Resolved call can have incomplete type parameters if ResolutionStatus is INCOMPLETE_TYPE_INFERENCE (might be completed successfully) or OTHER_ERROR (cannot be completed successfully, but if there's only one candidate, should be completed anyway).

Specified by:
hasIncompleteTypeParameters in interface ResolvedCallWithTrace<FunctionDescriptor>
Returns:
true if resolved call has unknown type parameters (inference is incomplete)

getCallToCompleteTypeArgumentInference

@NotNull
public ResolvedCallImpl<FunctionDescriptor> getCallToCompleteTypeArgumentInference()
Description copied from interface: ResolvedCallWithTrace
//todo get rid of Impl class in the interface If the call has incomplete type parameters, it should be completed after resolution process is finished. Returns this for normal call and function call for VariableAsFunctionCall.

Specified by:
getCallToCompleteTypeArgumentInference in interface ResolvedCallWithTrace<FunctionDescriptor>

getDataFlowInfoForArguments

@NotNull
public DataFlowInfoForArguments getDataFlowInfoForArguments()
Specified by:
getDataFlowInfoForArguments in interface ResolvedCall<FunctionDescriptor>

markCallAsCompleted

public void markCallAsCompleted()
Specified by:
markCallAsCompleted in interface ResolvedCallWithTrace<FunctionDescriptor>

isCompleted

public boolean isCompleted()
Specified by:
isCompleted in interface ResolvedCallWithTrace<FunctionDescriptor>