Skip to content

Ruby: Prune irrelevant data flow nodes and edges #14787

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

Merged
merged 1 commit into from
Nov 20, 2023

Conversation

hvitved
Copy link
Contributor

@hvitved hvitved commented Nov 14, 2023

This PR removes some irrelevant data flow nodes and edges, reported by the consistency checks of the shared type tracking library:

  • Only add flow-insensitive variable capture steps in type tracking when there is both a read and a write.
  • Limit ReturningNodes to those that may actually return a value.
  • Restrict Synth(Hash)SplatArgumentNodes to those into which we may actually do an implicit store.
  • Limit HashSplatContents to symbols, as only symbols can be mapped to parameters.

@github-actions github-actions bot added the Ruby label Nov 14, 2023
@hvitved hvitved force-pushed the ruby/prune-dataflow-nodes branch 2 times, most recently from 5c7ba84 to d648548 Compare November 14, 2023 19:50
@hvitved hvitved force-pushed the ruby/prune-dataflow-nodes branch from d648548 to b2f1022 Compare November 16, 2023 12:52
@hvitved hvitved added the no-change-note-required This PR does not need a change note label Nov 17, 2023
@hvitved hvitved marked this pull request as ready for review November 17, 2023 07:42
@hvitved hvitved requested a review from a team as a code owner November 17, 2023 07:42
@erik-krogh erik-krogh requested a review from aibaars November 20, 2023 14:16
@hvitved hvitved merged commit 620e8dc into github:main Nov 20, 2023
@hvitved hvitved deleted the ruby/prune-dataflow-nodes branch November 20, 2023 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-change-note-required This PR does not need a change note Ruby
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants