public class StandardFeatureCallArguments extends java.lang.Object implements IFeatureCallArguments
IFeatureCallArguments
that does not handle
var args
or closures at an unexpected index.Modifier and Type | Field and Description |
---|---|
protected java.util.List<XExpression> |
arguments |
protected int |
nextUnprocessedArgument |
protected ITypeReferenceOwner |
owner |
protected java.util.List<JvmFormalParameter> |
parameters |
protected int |
receiverFixup |
Constructor and Description |
---|
StandardFeatureCallArguments(java.util.List<XExpression> arguments,
java.util.List<JvmFormalParameter> parameters,
boolean hasReceiver,
ITypeReferenceOwner owner) |
Modifier and Type | Method and Description |
---|---|
XExpression |
getArgument(int idx)
Returns the argument expression at index
idx . |
int |
getArgumentCount()
Returns the number of argument expressions where the receiver
is considered to be an argument, too.
|
LightweightTypeReference |
getDeclaredTypeForLambda(int idx)
Returns the declared parameter type for the argument at index
idx . |
IFeatureCallArgumentSlot |
getNextUnprocessedArgumentSlot() |
boolean |
hasEmptyTrailingVarArg() |
boolean |
hasUnprocessedArguments() |
protected XExpression |
internalGetArgument(int idx) |
protected LightweightTypeReference |
internalGetParameterType(int idx) |
protected LightweightTypeReference |
internalGetParameterTypeForLambda(int idx) |
boolean |
isProcessed(int argumentIndex) |
protected void |
markProcessed(int argumentIndex) |
protected LightweightTypeReference |
toLightweightTypeReference(JvmFormalParameter parameter) |
java.lang.String |
toString() |
protected final java.util.List<JvmFormalParameter> parameters
protected final int receiverFixup
protected final java.util.List<XExpression> arguments
protected final ITypeReferenceOwner owner
protected int nextUnprocessedArgument
public StandardFeatureCallArguments(java.util.List<XExpression> arguments, java.util.List<JvmFormalParameter> parameters, boolean hasReceiver, ITypeReferenceOwner owner)
public boolean hasUnprocessedArguments()
hasUnprocessedArguments
in interface IFeatureCallArguments
public IFeatureCallArgumentSlot getNextUnprocessedArgumentSlot()
getNextUnprocessedArgumentSlot
in interface IFeatureCallArguments
public XExpression getArgument(int idx)
IFeatureCallArguments
idx
.
If there is a receiver, the index 0
returns
null
.getArgument
in interface IFeatureCallArguments
public final LightweightTypeReference getDeclaredTypeForLambda(int idx)
IFeatureCallArguments
idx
.
The semantics are similar to IFeatureCallArguments.getArgument(int)
except for var arg
parameters. Var arg parameters always return the component type of the
last argument if asked for the type of the last or variable argument.getDeclaredTypeForLambda
in interface IFeatureCallArguments
protected LightweightTypeReference internalGetParameterTypeForLambda(int idx)
public int getArgumentCount()
IFeatureCallArguments
getArgumentCount
in interface IFeatureCallArguments
public boolean hasEmptyTrailingVarArg()
hasEmptyTrailingVarArg
in interface IFeatureCallArguments
protected XExpression internalGetArgument(int idx)
protected LightweightTypeReference internalGetParameterType(int idx)
public boolean isProcessed(int argumentIndex)
isProcessed
in interface IFeatureCallArguments
argumentIndex
- the external argument index.protected void markProcessed(int argumentIndex)
argumentIndex
- the internal argument index.protected LightweightTypeReference toLightweightTypeReference(JvmFormalParameter parameter)
public java.lang.String toString()
toString
in class java.lang.Object