Skip to content

Commit cd03af3

Browse files
committed
C#: Get rid of the isOwnInstanceAccess based on ReturnStmt.
1 parent 34a91f1 commit cd03af3

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

csharp/ql/src/utils/model-generator/CaptureSummaryModels.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import CaptureSummaryModelsSpecific
99
* Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`).
1010
*/
1111
string captureQualifierFlow(TargetAPI api) {
12-
exists(ReturnStmt rtn |
13-
rtn.getEnclosingCallable() = api and
14-
isOwnInstanceAccess(rtn)
12+
exists(ReturnNodeExt ret |
13+
api = returnNodeEnclosingCallable(ret) and
14+
isOwnInstanceAccessNode(ret)
1515
) and
1616
result = asValueModel(api, qualifierString(), "ReturnValue")
1717
}

csharp/ql/src/utils/model-generator/CaptureSummaryModelsSpecific.qll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import semmle.code.csharp.dataflow.internal.DataFlowImplCommon
88
import semmle.code.csharp.dataflow.internal.DataFlowPrivate
99
import ModelGeneratorUtils
1010

11-
predicate isOwnInstanceAccess(ReturnStmt rtn) { rtn.getExpr() instanceof ThisAccess }
11+
pragma[inline]
12+
Callable returnNodeEnclosingCallable(ReturnNodeExt ret) { result = getNodeEnclosingCallable(ret) }
1213

1314
predicate isOwnInstanceAccessNode(ReturnNode node) { node.asExpr() instanceof ThisAccess }
1415

java/ql/src/utils/model-generator/CaptureSummaryModels.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import CaptureSummaryModelsSpecific
99
* Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`).
1010
*/
1111
string captureQualifierFlow(TargetApi api) {
12-
exists(ReturnStmt rtn |
13-
rtn.getEnclosingCallable() = api and
14-
isOwnInstanceAccess(rtn)
12+
exists(ReturnNodeExt ret |
13+
api = returnNodeEnclosingCallable(ret) and
14+
isOwnInstanceAccessNode(ret)
1515
) and
1616
result = asValueModel(api, qualifierString(), "ReturnValue")
1717
}

java/ql/src/utils/model-generator/CaptureSummaryModelsSpecific.qll

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ import semmle.code.java.dataflow.internal.DataFlowPrivate
1010
import semmle.code.java.dataflow.InstanceAccess
1111
import ModelGeneratorUtils
1212

13-
predicate isOwnInstanceAccess(ReturnStmt rtn) { rtn.getResult().(ThisAccess).isOwnInstanceAccess() }
13+
pragma[inline]
14+
Callable returnNodeEnclosingCallable(ReturnNodeExt ret) {
15+
result = getNodeEnclosingCallable(ret).asCallable()
16+
}
1417

1518
predicate isOwnInstanceAccessNode(ReturnNode node) {
1619
node.asExpr().(ThisAccess).isOwnInstanceAccess()

0 commit comments

Comments
 (0)