Skip to content

Conversation

@asger-semmle
Copy link
Contributor

Revives a part of #760: field flow directly from constructors to instance members.

This avoids the potential for FPs by restricting the flow to cases where the flow source is in the constructor or one of its callees, as opposed to coming in through a parameter.

It also adds DataFlow::localFieldStep to make it easier for custom queries to relax the above constraint and track things freely through fields.

@asger-semmle asger-semmle requested a review from a team as a code owner February 26, 2019 13:13
@asger-semmle asger-semmle added JS WIP This is a work-in-progress, do not merge yet! labels Feb 26, 2019
Copy link

@xiemaisi xiemaisi left a comment

Choose a reason for hiding this comment

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

General approach looks good, but I'll wait for evaluation results before approving.

@asger-semmle
Copy link
Contributor Author

Evaluation shows some perf issues. I suspect the new exploratory flow steps are to blame, but I'll investigate further after feature freeze.

@asger-semmle asger-semmle force-pushed the class-node-get-this-access branch from ccc499f to 9497199 Compare March 1, 2019 12:53
@asger-semmle
Copy link
Contributor Author

@xiemaisi PTAL. I have removed the last commit which added the data flow step to our default suite. I'll try and land it later.

For now, only the commits that add DataFlow::localFieldStep and ClassNode::getAReceiverNode remain. I'd like to land those in 1.20 if possible.

These should not have any impact on perf, but I've re-run the evaluation on the slowest projects from the prior revaluation just as a sanity check.

@asger-semmle asger-semmle removed the WIP This is a work-in-progress, do not merge yet! label Mar 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants