@@ -32,9 +32,8 @@ private class ArgumentNode extends DataFlow::Node {
3232 * A candidates implementation.
3333 *
3434 * Some important notes:
35- * - This mode is using parameters as endpoints.
36- * - Sink- and neutral-information is being used from MaD models.
37- * - When available, we use method- and class-java-docs as related locations.
35+ * - This mode is using arguments as endpoints.
36+ * - We use the `CallContext` (the surrounding call expression) as related location.
3837 */
3938module ApplicationCandidatesImpl implements SharedCharacteristics:: CandidateSig {
4039 // for documentation of the implementations here, see the QLDoc in the CandidateSig signature module.
@@ -112,7 +111,7 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig
112111 }
113112
114113 /**
115- * Returns the callable that contains the given endpoint .
114+ * Returns the API callable being modelled .
116115 *
117116 * Each Java mode should implement this predicate.
118117 */
@@ -279,8 +278,10 @@ private class ClassQualifierCharacteristic extends CharacteristicsImpl::NotASink
279278}
280279
281280/**
282- * A characteristic that limits candidates to parameters of methods that are recognized as `ModelApi`, iow., APIs that
283- * are considered worth modeling.
281+ * A call to a method that's known locally will not be considered as a candidate to model.
282+ *
283+ * The reason is that we would expect data/taint flow into the method implementation to uncover
284+ * any sinks that are present there.
284285 */
285286private class ArgumentToLocalCall extends CharacteristicsImpl:: UninterestingToModelCharacteristic {
286287 ArgumentToLocalCall ( ) { this = "argument to local call" }
0 commit comments