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
Autogenerate IrMemberAccessExpression #5107
Merged
udalov
merged 7 commits into
JetBrains:master
from
mcpiroman:autogen-IrMemberAccessExpression
Apr 12, 2023
Merged
Autogenerate IrMemberAccessExpression #5107
udalov
merged 7 commits into
JetBrains:master
from
mcpiroman:autogen-IrMemberAccessExpression
Apr 12, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mcpiroman
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
March 21, 2023 21:27
afab144
to
3018aa7
Compare
I assume the Array -> MutableList change can be quite impactful, so I restored those fields back to arrays. |
mcpiroman
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
March 21, 2023 21:43
3018aa7
to
e94db0b
Compare
Could you please rework your branch to collapse the first and the last commit and remove them, thus avoiding unnecessary changes? |
mcpiroman
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
March 23, 2023 11:04
e94db0b
to
e3665fa
Compare
Done. I also removed fields with empty arrays, so now performance should be on pair. |
mcpiroman
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
March 23, 2023 13:44
e3665fa
to
a063bcc
Compare
udalov
requested changes
Mar 24, 2023
compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrMemberAccessExpression.kt
Outdated
Show resolved
Hide resolved
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/transform.kt
Outdated
Show resolved
Hide resolved
mcpiroman
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
March 27, 2023 14:20
a063bcc
to
a8eeede
Compare
Except `putTypeArguments`, which is moved to psi2ir where it's used.
To help git understand that IrMemberAccessExpression is moved in the subsequent commits where it's changed to be auto-generated.
Align it with all other element types where origin is mutable. This was left unchanged previously probably because the IrMemberAccessExpression was not handled by the tree generator.
udalov
force-pushed
the
autogen-IrMemberAccessExpression
branch
from
April 12, 2023 17:48
a8eeede
to
2417e98
Compare
Merged with a couple of minor changes. Thank you for the contribution! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR completes #4560 by generating the last left over element class. That fix allows further bulk operations and experiments involving the whole tree.
Most significantly the
valueArguments
andtypeArguments
lists were converted from arrays to (preallocated) MutableLists.One outcome is that it's now possible to work with them like with regular lists instead of throught the
getValueArgument
/putTypeArgument
methods. OOTH the everything still uses the latter. But it should be possible to inline those methods with a refactoring action for the whole codebase if that's desired.The other thing is possible performance regression.I have not run any benchamrk but I'm keen on seeing its results.