@@ -45,6 +45,11 @@ predicate asPartialModel = DataFlowPrivate::Csv::asPartialModel/1;
45
45
*/
46
46
predicate isRelevantType ( CS:: Type t ) { not t instanceof CS:: Enum }
47
47
48
+ /**
49
+ * Gets the CSV string representation of the qualifier.
50
+ */
51
+ string qualifierString ( ) { result = "Argument[Qualifier]" }
52
+
48
53
private string parameterAccess ( CS:: Parameter p ) {
49
54
if Collections:: isCollectionType ( p .getType ( ) )
50
55
then result = "Argument[" + p .getPosition ( ) + "].Element"
@@ -57,7 +62,7 @@ private string parameterAccess(CS::Parameter p) {
57
62
string parameterNodeAsInput ( DataFlow:: ParameterNode p ) {
58
63
result = parameterAccess ( p .asParameter ( ) )
59
64
or
60
- result = "Argument[Qualifier]" and p instanceof DataFlowPrivate:: InstanceParameterNode
65
+ result = qualifierString ( ) and p instanceof DataFlowPrivate:: InstanceParameterNode
61
66
}
62
67
63
68
pragma [ nomagic]
@@ -78,7 +83,7 @@ string returnNodeAsOutput(DataFlowImplCommon::ReturnNodeExt node) {
78
83
result = parameterAccess ( getParameter ( node , pos ) )
79
84
or
80
85
pos .isThisParameter ( ) and
81
- result = "Argument[Qualifier]"
86
+ result = qualifierString ( )
82
87
)
83
88
}
84
89
@@ -96,17 +101,6 @@ predicate isOwnInstanceAccessNode(DataFlowPrivate::ReturnNode node) {
96
101
node .asExpr ( ) instanceof CS:: ThisAccess
97
102
}
98
103
99
- /**
100
- * Gets the CSV string representation of the qualifier.
101
- */
102
- string qualifierString ( ) { result = "Argument[Qualifier]" }
103
-
104
- /**
105
- * Holds if `kind` is a relevant sink kind for creating sink models.
106
- */
107
- bindingset [ kind]
108
- predicate isRelevantSinkKind ( string kind ) { any ( ) }
109
-
110
104
private predicate isRelevantMemberAccess ( DataFlow:: Node node ) {
111
105
exists ( CS:: MemberAccess access | access = node .asExpr ( ) |
112
106
access .hasThisQualifier ( ) and
@@ -143,3 +137,9 @@ string asInputArgument(DataFlow::Node source) {
143
137
source .asExpr ( ) instanceof DataFlowPrivate:: FieldOrPropertyAccess and
144
138
result = qualifierString ( )
145
139
}
140
+
141
+ /**
142
+ * Holds if `kind` is a relevant sink kind for creating sink models.
143
+ */
144
+ bindingset [ kind]
145
+ predicate isRelevantSinkKind ( string kind ) { any ( ) }
0 commit comments