@@ -2,26 +2,24 @@ import java
22import semmle.code.java.dataflow.DataFlow
33import TestUtilities.InlineExpectationsTest
44
5- class Conf extends DataFlow:: Configuration {
6- Conf ( ) { this = "qltest:callback-dispatch" }
5+ module Config implements DataFlow:: ConfigSig {
6+ predicate isSource ( DataFlow :: Node n ) { n . asExpr ( ) . ( MethodAccess ) . getMethod ( ) . hasName ( "source" ) }
77
8- override predicate isSource ( DataFlow:: Node n ) {
9- n .asExpr ( ) .( MethodAccess ) .getMethod ( ) .hasName ( "source" )
10- }
11-
12- override predicate isSink ( DataFlow:: Node n ) {
8+ predicate isSink ( DataFlow:: Node n ) {
139 exists ( MethodAccess ma | ma .getMethod ( ) .hasName ( "sink" ) | n .asExpr ( ) = ma .getAnArgument ( ) )
1410 }
1511}
1612
13+ module Flow = DataFlow:: Global< Config > ;
14+
1715class HasFlowTest extends InlineExpectationsTest {
1816 HasFlowTest ( ) { this = "HasFlowTest" }
1917
2018 override string getARelevantTag ( ) { result = "flow" }
2119
2220 override predicate hasActualResult ( Location location , string element , string tag , string value ) {
2321 tag = "flow" and
24- exists ( DataFlow:: Node src , DataFlow:: Node sink , Conf conf | conf . hasFlow ( src , sink ) |
22+ exists ( DataFlow:: Node src , DataFlow:: Node sink | Flow :: flow ( src , sink ) |
2523 sink .getLocation ( ) = location and
2624 element = sink .toString ( ) and
2725 value = src .asExpr ( ) .( MethodAccess ) .getAnArgument ( ) .toString ( )
0 commit comments