Python: Rename target => callee

To use a standardised naming :)
This commit is contained in:
Rasmus Wriedt Larsen
2020-07-14 11:26:05 +02:00
parent d913d33289
commit ee42d0839e
4 changed files with 21 additions and 21 deletions

View File

@@ -18,12 +18,12 @@ class RelevantCall extends Call {
module PointsToBasedCallGraph {
/** A call that can be resolved by points-to. */
class ResolvableCall extends RelevantCall {
Value target;
Value callee;
ResolvableCall() { target.getACall() = this.getAFlowNode() }
ResolvableCall() { callee.getACall() = this.getAFlowNode() }
/** Gets a resolved target of this call. */
Value getTarget() { result = target }
/** Gets a resolved callee of this call. */
Value getCallee() { result = callee }
}
/** A call that cannot be resolved by points-to. */
@@ -32,20 +32,20 @@ module PointsToBasedCallGraph {
}
/**
* A call that can be resolved by points-to, where the resolved target is relevant.
* Relevant targets include:
* A call that can be resolved by points-to, where the resolved callee is relevant.
* Relevant callees include:
* - builtins
* - standard library
* - source code of the project
*/
class ResolvableCallRelevantTarget extends ResolvableCall {
ResolvableCallRelevantTarget() {
target.isBuiltin()
class ResolvableCallRelevantCallee extends ResolvableCall {
ResolvableCallRelevantCallee() {
callee.isBuiltin()
or
exists(File file |
file = target.(CallableValue).getScope().getLocation().getFile()
file = callee.(CallableValue).getScope().getLocation().getFile()
or
file = target.(ClassValue).getScope().getLocation().getFile()
file = callee.(ClassValue).getScope().getLocation().getFile()
|
file.inStdlib()
or
@@ -56,10 +56,10 @@ module PointsToBasedCallGraph {
}
/**
* A call that can be resolved by points-to, where the resolved target is not considered relevant.
* See `ResolvableCallRelevantTarget` for the definition of relevance.
* A call that can be resolved by points-to, where the resolved callee is not considered relevant.
* See `ResolvableCallRelevantCallee` for the definition of relevance.
*/
class ResolvableCallIrrelevantTarget extends ResolvableCall {
ResolvableCallIrrelevantTarget() { not this instanceof ResolvableCallRelevantTarget }
class ResolvableCallIrrelevantCallee extends ResolvableCall {
ResolvableCallIrrelevantCallee() { not this instanceof ResolvableCallRelevantCallee }
}
}

View File

@@ -1,6 +1,6 @@
/**
* @name Ratio of resolvable call by points-to
* @description The percentage of (relevant) calls that can be resolved to a target.
* @description The percentage of (relevant) calls that can be resolved to a callee.
* @kind metric
* @metricType project
* @metricAggregate sum min max avg

View File

@@ -1,6 +1,6 @@
/**
* @name Resolvable calls by points-to
* @description The number of (relevant) calls that can be resolved to a target.
* @description The number of (relevant) calls that can be resolved to a callee.
* @kind metric
* @metricType project
* @metricAggregate sum

View File

@@ -1,14 +1,14 @@
/**
* @name Resolvable calls by points-to, to relevant target
* @description The number of (relevant) calls that could be resolved to a target that is relevant.
* @name Resolvable calls by points-to, to relevant callee
* @description The number of (relevant) calls that could be resolved to a callee that is relevant.
* @kind metric
* @metricType project
* @metricAggregate sum
* @tags meta
* @id py/meta/points-to-resolvable-calls-relevant-target
* @id py/meta/points-to-resolvable-calls-relevant-callee
*/
import python
import CallGraphQuality
select projectRoot(), count(PointsToBasedCallGraph::ResolvableCallRelevantTarget call)
select projectRoot(), count(PointsToBasedCallGraph::ResolvableCallRelevantCallee call)