@@ -14,73 +14,6 @@ external predicate availableMlModels(
14
14
/** Get the ATM configuration. */
15
15
ATMConfig getCfg ( ) { any ( ) }
16
16
17
- /**
18
- * This module provides functionality that takes an endpoint and provides an entity that encloses that
19
- * endpoint and is suitable for similarity analysis.
20
- */
21
- module EndpointToEntity {
22
- private import CodeToFeatures
23
-
24
- /**
25
- * Get an entity enclosing the endpoint that is suitable for similarity analysis. In general,
26
- * this may associate multiple entities to a single endpoint.
27
- */
28
- DatabaseFeatures:: Entity getAnEntityForEndpoint ( DataFlow:: Node endpoint ) {
29
- DatabaseFeatures:: entities ( result , _, _, _, _, _, _, _, _) and
30
- result .getDefinedFunction ( ) = endpoint .getContainer ( ) .getEnclosingContainer * ( )
31
- }
32
- }
33
-
34
- /**
35
- * This module provides functionality that takes an entity and provides effective endpoints within
36
- * that entity.
37
- *
38
- * We use the following terminology to describe endpoints:
39
- *
40
- * - The *candidate* endpoints are the set of data flow nodes that should be passed to the
41
- * appropriate endpoint filter to produce the set of effective endpoints.
42
- * When we have a model that beats the performance of the baseline, we will likely define the
43
- * candidate endpoints based on the most confident predictions of the model.
44
- * - An *effective* endpoint is a candidate endpoint which passes through the endpoint filter.
45
- * In other words, it is a candidate endpoint for which the `isEffectiveSink` (or
46
- * `isEffectiveSource`) predicate defined in the `ATMConfig` instance in scope holds.
47
- */
48
- module EntityToEffectiveEndpoint {
49
- private import CodeToFeatures
50
-
51
- /**
52
- * Returns endpoint candidates within the specified entities.
53
- *
54
- * The baseline implementation of this is that a candidate endpoint is any data flow node that is
55
- * enclosed within the specified entity.
56
- */
57
- private DataFlow:: Node getABaselineEndpointCandidate ( DatabaseFeatures:: Entity entity ) {
58
- result .getContainer ( ) .getEnclosingContainer * ( ) = entity .getDefinedFunction ( )
59
- }
60
-
61
- /**
62
- * Get an effective source enclosed by the specified entity.
63
- *
64
- * N.B. This is _not_ an inverse of `EndpointToEntity::getAnEntityForEndpoint`: the effective
65
- * source may occur in a function defined within the specified entity.
66
- */
67
- DataFlow:: Node getAnEffectiveSource ( DatabaseFeatures:: Entity entity ) {
68
- result = getABaselineEndpointCandidate ( entity ) and
69
- getCfg ( ) .isEffectiveSource ( result )
70
- }
71
-
72
- /**
73
- * Get an effective sink enclosed by the specified entity.
74
- *
75
- * N.B. This is _not_ an inverse of `EndpointToEntity::getAnEntityForEndpoint`: the effective
76
- * sink may occur in a function defined within the specified entity.
77
- */
78
- DataFlow:: Node getAnEffectiveSink ( DatabaseFeatures:: Entity entity ) {
79
- result = getABaselineEndpointCandidate ( entity ) and
80
- getCfg ( ) .isEffectiveSink ( result )
81
- }
82
- }
83
-
84
17
/**
85
18
* Scoring information produced by a scoring model.
86
19
*
0 commit comments