Skip to content
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

Move AExpression mutable members into isolated Input/Output objects #53075

Merged
merged 16 commits into from
Mar 9, 2020

Conversation

jdconrad
Copy link
Contributor

@jdconrad jdconrad commented Mar 3, 2020

This is a step toward the long-term goal of making the "user" trees nodes immutable. This change isolates the mutable data for expression nodes in the "user" tree during the semantic (analysis) phase by moving the mutable data into Input and Output objects. These objects are created locally during the semantic phase to share information required for semantic checking between parent-child nodes.

Note that for this change, Input and Output are still stored in a mutable way on the expression nodes. This will not be the case once the semantic (analysis) phase and ir generation (write) phase are combined in a future change.

Relates #49869

@jdconrad jdconrad added :Core/Infra/Scripting Scripting abstractions, Painless, and Mustache >refactoring v8.0.0 labels Mar 3, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra (:Core/Infra/Scripting)

@jdconrad jdconrad changed the title Move AExpression mutable members into isolated Input/Ouput objects Move AExpression mutable members into isolated Input/Output objects Mar 3, 2020
Copy link
Member

@rjernst rjernst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jdconrad
Copy link
Contributor Author

jdconrad commented Mar 9, 2020

@rjernst Thanks for the review!

@jdconrad jdconrad merged commit c70c48d into elastic:master Mar 9, 2020
jdconrad added a commit that referenced this pull request Mar 13, 2020
…53348)

This is the follow up to #53075, isolating the mutable data on the 
statement nodes as the referenced change did the expression nodes.

This is a step toward the long-term goal of making the "user" trees nodes 
immutable. This change isolates the mutable data for statement nodes in 
the "user" tree during the semantic (analysis) phase by moving the 
mutable data into Input and Output objects. These objects are created 
locally during the semantic phase to share information required for 
semantic checking between parent-child nodes.

Note that for this change, Input and Output are still stored in a mutable 
way on the statement nodes. This will not be the case once the semantic 
(analysis) phase and ir generation (write) phase are combined in a future 
change.

Relates #49869
@jakelandis jakelandis removed the v8.0.0 label Jul 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Core/Infra/Scripting Scripting abstractions, Painless, and Mustache >refactoring v8.0.0-alpha1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants