[FIX] multi return values handling when lambda is used inside the function #113
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #112
The current implementation fails to handle cases when there is a lambda in the function where multi-return values are used. The issue is with the
get_declaration_of()
function that tries not to go beyond the current function but is misled by a lambda functionIt makes it impossible to compile below code:
as the second call to
ri
variable is not getting a proper declaration from theget_declaration_of()
function and it makes that cppfront generates:This fix makes cppfront compile the above code to:
Also, this change fixes other issues when the multi-return values are initialized in the declaration place. The below code:
now compiles to: