Inline late and remove manual magic

This commit is contained in:
Owen Mansel-Chan
2024-10-25 12:32:39 +01:00
parent c2aee37210
commit 80e8015e67

View File

@@ -279,14 +279,9 @@ module SourceSinkInterpretationInput implements
* check that the specific name given by `sse.hasTypeInfo` refers to either `qual`'s type
* or to a type it embeds.
*/
bindingset[sse, qual]
pragma[inline_late]
private predicate elementAppliesToQualifier(SourceOrSinkElement sse, DataFlow::Node qual) {
(
exists(DataFlow::CallNode cn | cn.getReceiver() = qual and cn.getTarget() = sse.asEntity())
or
exists(DataFlow::FieldReadNode frn | frn.getBase() = qual and frn.getField() = sse.asEntity())
or
exists(DataFlow::Write fw | fw.writesField(qual, sse.asEntity(), _))
) and
exists(
string pkg, string typename, boolean subtypes, Type syntacticQualBaseType, Type targetType
|