-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature / Architecture Discussion: Optional and Named arguments #1083
Comments
pentp
pushed a commit
to pentp/ILSpy
that referenced
this issue
Mar 10, 2018
siegfriedpammer
added a commit
that referenced
this issue
May 23, 2018
… call arguments are now prefixed with the parameter index they correspond to, if the mapping is different from the default.
dgrunwald
added a commit
that referenced
this issue
Jun 1, 2018
…t output call arguments are now prefixed with the parameter index they correspond to, if the mapping is different from the default." This reverts commit 60ace84.
dgrunwald
added a commit
that referenced
this issue
Jun 1, 2018
"2) Named Arguments" is now implemented.
|
Optional arguments are implemented as of 4776331 |
siegfriedpammer
added a commit
that referenced
this issue
Jul 23, 2018
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Language Feature(s):
These features should be implemented in one go, because they depend on each other.
Affected areas:
1) Optional Arguments:
Optional values can only be:
ldnull, ldstr, ldc.*, default.value
2) Named Arguments:
CallInstruction
currently does not distinguish between the argument evaluation order, and the parameter order. TheCallInstruction.Arguments
collection must be in evaluation order. But we can extendCallInstruction
to allow more flexible mapping of arguments to parameters.CallInstruction
: Addint[] argumentToParameterMap
. For each argument index, this would specify the corresponding parameter index in the method's parameter collection.this
parameter (which isn't present in the method's parameter collection) could be represented as-1
. It must remain argument 0.CallInstruction.CheckInvariant
should check that the mapping between arguments and parameters is 1-to-1.argumentToParameterMap
in order to open up new inlining possibilities (maybe as extension toILInlining
? or as a newStatementTransform
?)NamedArgumentExpression
3) Non-trailing Named Arguments:
Related:
The text was updated successfully, but these errors were encountered: