C#: Refactor isRelevantForModels.

This commit is contained in:
Michael Nebel
2022-03-24 14:23:30 +01:00
parent 5970fd9904
commit 4298024cd6
2 changed files with 4 additions and 3 deletions

View File

@@ -52,7 +52,6 @@ class PropagateToSinkConfigurationSpecific extends TaintTracking::Configuration
override predicate isSource(DataFlow::Node source) {
(isRelevantMemberAccess(source) or source instanceof DataFlow::ParameterNode) and
source.getEnclosingCallable().(Modifiable).isEffectivelyPublic() and
isRelevantForModels(source.getEnclosingCallable())
}
}

View File

@@ -8,7 +8,10 @@ private import semmle.code.csharp.dataflow.internal.DataFlowDispatch
/**
* Holds if it is relevant to generate models for `api`.
*/
predicate isRelevantForModels(Callable api) { not api instanceof Util::MainMethod }
predicate isRelevantForModels(Callable api) {
[api.(Modifiable), api.(Accessor).getDeclaration()].isEffectivelyPublic() and
not api instanceof Util::MainMethod
}
/**
* A class of callables that are relevant generating summary, source and sinks models for.
@@ -18,7 +21,6 @@ predicate isRelevantForModels(Callable api) { not api instanceof Util::MainMetho
*/
class TargetApi extends DataFlowCallable {
TargetApi() {
[this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and
this.fromSource() and
isRelevantForModels(this)
}