Rust: Extract data flow node and content into separate files#19004
Rust: Extract data flow node and content into separate files#19004paldepind merged 4 commits intogithub:mainfrom
Conversation
56c2582 to
7274703
Compare
7274703 to
3c64414
Compare
hvitved
left a comment
There was a problem hiding this comment.
Nice refactor, a couple of minor suggestions.
|
|
||
| /** A collection of cached types and predicates to be evaluated in the same stage. */ | ||
| cached | ||
| private module Cached { |
There was a problem hiding this comment.
Since there is only one cached entity inside this module, we may as well remove it.
|
|
||
| /** A collection of cached types and predicates to be evaluated in the same stage. */ | ||
| cached | ||
| private module Cached { |
There was a problem hiding this comment.
Again, this module is not needed.
| import codeql.rust.dataflow.DataFlow | ||
| import codeql.rust.dataflow.TaintTracking | ||
| import codeql.rust.dataflow.internal.DataFlowImpl | ||
| import codeql.rust.dataflow.internal.Content |
There was a problem hiding this comment.
I think it would be better if we expose the relevant Content sub classes as aliases inside DataFlow.qll (excluding FunctionCallArgumentContent and FunctionCallReturnContent).
3dc126c to
5a3bf90
Compare
|
DCA shows some changes, even though this refactor shouldn't change anything. It seems like cache size and database size is bigger, but only for microsoft-openvmm. Do these numbers have wobble or are things somehow not cached the same anymore? I thought ensuring the same stage for new files would ensure equivalent caching. |
The cache numbers actually include anything that happens to be flushed to disk, not just |
|
Thanks 🙏 . That makes sense, so it's not just a function from how many cached predicates there are. |
The
DataFlowImpl.qllfile is rather large. This PR extracts theContentandNodeclass into separate files.