Dataflow: Cache compatibleTypes.

This commit is contained in:
Anders Schack-Mulligen
2024-06-19 12:48:48 +02:00
parent 06a7e3f3ee
commit 8c23e21073
11 changed files with 41 additions and 46 deletions

View File

@@ -2483,7 +2483,7 @@ private predicate uselessTypebound(DataFlowType dt) {
)
}
pragma[inline]
pragma[nomagic]
private predicate compatibleTypesDelegateLeft(DataFlowType dt1, DataFlowType dt2) {
exists(Gvn::GvnType t1, Gvn::GvnType t2 |
t1 = exprNode(dt1.getADelegateCreation()).(NodeImpl).getDataFlowType().asGvnType() and
@@ -2507,7 +2507,7 @@ private predicate compatibleTypesDelegateLeft(DataFlowType dt1, DataFlowType dt2
* Holds if `t1` and `t2` are compatible, that is, whether data can flow from
* a node of type `t1` to a node of type `t2`.
*/
pragma[inline]
pragma[nomagic]
predicate compatibleTypes(DataFlowType dt1, DataFlowType dt2) {
exists(Gvn::GvnType t1, Gvn::GvnType t2 |
t1 = dt1.asGvnType() and