C++: make unresolve a member of ElementBase#232
Merged
adityasharad merged 3 commits intogithub:rc/1.18from Sep 26, 2018
Merged
Conversation
Also remove the charpred of ElementBase. This gets rid of many redundant charpred checks. It means that incomplete classes from the db are now `Element`s, which is maybe noisy but should not be harmful. Together, these changes give a great reduction in DIL and should help the optimiser. It brings the DIL of `UncontrolledFormatString.ql` down from 43,908 lines to 35,400 lines.
Contributor
Author
|
@adityasharad @aibaars: only one (or none) of #232 and #215 should be merged, and we're still testing to find out what it should be. |
Raw classes from the database that are incomplete and should be represented by their complete twin are now allowed to be `Element`s for performance reasons, but this commit prevents them from being `Type`s. It was causing confusion in test results and might also cause confusion in queries.
These two predicates were supposed to be fast but became slow after the recent inlining of `unresolve`.
adityasharad
approved these changes
Sep 26, 2018
aibaars
added a commit
that referenced
this pull request
Oct 14, 2021
Stabilise node ordering for regexp parsing test
smowton
pushed a commit
to smowton/codeql
that referenced
this pull request
Feb 7, 2022
…ion-warnings Do not report negative index warning on extension parameters
MathiasVP
pushed a commit
to MathiasVP/ql
that referenced
this pull request
Aug 10, 2025
…cific-buildscripts PowerShell: OS-specific buildscripts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Also remove the charpred of ElementBase. This gets rid of many redundant charpred checks. It means that incomplete classes from the db are now
Elements, which is maybe noisy but should not be harmful.Together, these changes give a great reduction in DIL and should help the optimiser. It brings the DIL of
UncontrolledFormatString.qldown from 43,908 lines to35,40035,809 lines.This PR includes some of the changes from #215 but does
unresolveElementthrough a dispatch predicate instead of anif. This seems to help the optimiser better.