-
Notifications
You must be signed in to change notification settings - Fork 65
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
Global pre-processing for leveraging callgraphs #605
Conversation
@alexroan There are bunch of unit tests for the callgraph framework in the file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It feels like there are a few detectors and other features we're trying to squeeze in at once.
So that I know what I'm reviewing, could you reference all the tickets being addressed in this one please @TilakMaddy ?
@alexroan You are right, I was focussed on the callgraph library and I didn't even realize I used the same
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking very good @TilakMaddy . I have a few change requests before another review. We're getting close though, this looks powerful af.
I'm removing "Sub without If" from this so we can merge the callgraph without it blocking. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved, with a follow up that I'll make a note of @TilakMaddy
CallGraphs can now be leveraged with help of
StandardInvestigator
- I have tried to make as many default assumptions as possible to keep the interface simple to use.Job of the investigator is to derive a subgraph from the master workspace callgraph and provide hooks to interact with functions and modifiers while it does the following:
PS: You can provide a navigation style to save time and be efficient in terms of covering traversal ground
Pre-processing
Trackers
Future scope
Add the following detectors as proof of concept to this PR
x.sub(y)
withoutif
checks to stop unexpected reverts (cc: @devdacian)