@@ -24,37 +24,42 @@ module ProductFlow {
24
24
DataFlow:: PathNode source1 , DataFlow2:: PathNode source2 , DataFlow:: PathNode sink1 ,
25
25
DataFlow2:: PathNode sink2
26
26
) {
27
- isSourcePair ( source1 .getNode ( ) , source2 .getNode ( ) ) and
28
27
isSinkPair ( sink1 .getNode ( ) , sink2 .getNode ( ) ) and
29
28
reachablePair2 ( this , source1 , source2 , sink1 , sink2 )
30
29
}
31
30
}
32
31
33
- class Conf1 extends DataFlow:: Configuration {
34
- Conf1 ( ) { this = "Conf1" }
32
+ private import Internal
33
+ module Internal {
34
+ class Conf1 extends DataFlow:: Configuration {
35
+ Conf1 ( ) { this = "Conf1" }
35
36
36
- override predicate isSource ( DataFlow:: Node source ) {
37
- exists ( Configuration conf | conf .isSourcePair ( source , _) )
38
- }
37
+ override predicate isSource ( DataFlow:: Node source ) {
38
+ exists ( Configuration conf | conf .isSourcePair ( source , _) )
39
+ }
39
40
40
- override predicate isSink ( DataFlow:: Node sink ) {
41
- exists ( Configuration conf | conf .isSinkPair ( sink , _) )
41
+ override predicate isSink ( DataFlow:: Node sink ) {
42
+ exists ( Configuration conf | conf .isSinkPair ( sink , _) )
43
+ }
42
44
}
43
- }
44
45
45
- class Conf2 extends DataFlow2:: Configuration {
46
- Conf2 ( ) { this = "Conf2" }
46
+ class Conf2 extends DataFlow2:: Configuration {
47
+ Conf2 ( ) { this = "Conf2" }
47
48
48
- override predicate isSource ( DataFlow:: Node source ) {
49
- exists ( Configuration conf | conf .isSourcePair ( _, source ) )
50
- }
49
+ override predicate isSource ( DataFlow:: Node source ) {
50
+ exists ( Configuration conf , DataFlow:: Node source1 |
51
+ conf .isSourcePair ( source1 , source ) and
52
+ any ( Conf1 c ) .hasFlow ( source1 , _)
53
+ )
54
+ }
51
55
52
- override predicate isSink ( DataFlow:: Node sink ) {
53
- exists ( Configuration conf | conf .isSinkPair ( _, sink ) )
56
+ override predicate isSink ( DataFlow:: Node sink ) {
57
+ exists ( Configuration conf | conf .isSinkPair ( _, sink ) )
58
+ }
54
59
}
55
60
}
56
61
57
- predicate reachablePair1 (
62
+ private predicate reachablePair1 (
58
63
Configuration conf , DataFlow:: PathNode source1 , DataFlow2:: PathNode source2 ,
59
64
DataFlow:: PathNode node1 , DataFlow2:: PathNode node2
60
65
) {
@@ -67,7 +72,7 @@ module ProductFlow {
67
72
)
68
73
}
69
74
70
- predicate reachablePair2 (
75
+ private predicate reachablePair2 (
71
76
Configuration conf , DataFlow:: PathNode source1 , DataFlow2:: PathNode source2 ,
72
77
DataFlow:: PathNode node1 , DataFlow2:: PathNode node2
73
78
) {
@@ -80,7 +85,7 @@ module ProductFlow {
80
85
)
81
86
}
82
87
83
- predicate interprocStep (
88
+ private predicate interprocStep (
84
89
Configuration conf , DataFlow:: PathNode source1 , DataFlow2:: PathNode source2 ,
85
90
DataFlow:: PathNode node1 , DataFlow2:: PathNode node2
86
91
) {
@@ -96,7 +101,7 @@ module ProductFlow {
96
101
)
97
102
}
98
103
99
- predicate reachablePair (
104
+ private predicate reachablePair (
100
105
Configuration conf , DataFlow:: PathNode source1 , DataFlow2:: PathNode source2 ,
101
106
DataFlow:: PathNode node1 , DataFlow2:: PathNode node2
102
107
) {
0 commit comments