@@ -22,7 +22,7 @@ predicate isOrHasSideEffect(Expr e) {
22
22
any ( VariableEffect ve ) .getAnAccess ( ) = e
23
23
}
24
24
25
- predicate originatingInStatement ( Expr e , FullExpr fe ) {
25
+ predicate partOfFullExpr ( Expr e , FullExpr fe ) {
26
26
isOrHasSideEffect ( e ) and
27
27
(
28
28
e .( VariableEffect ) .getAnAccess ( ) = fe .getAChild + ( )
@@ -36,19 +36,19 @@ class ConstituentExprOrdering extends Ordering::Configuration {
36
36
37
37
override predicate isCandidate ( Expr e1 , Expr e2 ) {
38
38
exists ( FullExpr fe |
39
- originatingInStatement ( e1 , fe ) and
40
- originatingInStatement ( e2 , fe )
39
+ partOfFullExpr ( e1 , fe ) and
40
+ partOfFullExpr ( e2 , fe )
41
41
)
42
42
}
43
43
}
44
44
45
45
pragma [ noinline]
46
46
predicate sameFullExpr ( FullExpr fe , Expr e1 , Expr e2 ) {
47
- originatingInStatement ( e1 , fe ) and
48
- originatingInStatement ( e2 , fe )
47
+ partOfFullExpr ( e1 , fe ) and
48
+ partOfFullExpr ( e2 , fe )
49
49
}
50
50
51
- predicate effect ( VariableEffect ve , VariableAccess va , Variable v ) {
51
+ predicate destructureEffect ( VariableEffect ve , VariableAccess va , Variable v ) {
52
52
ve .getAnAccess ( ) = va and
53
53
va .getTarget ( ) = v and
54
54
ve .getTarget ( ) = v
60
60
where
61
61
not isExcluded ( fullExpr , SideEffects3Package:: unsequencedSideEffectsQuery ( ) ) and
62
62
sameFullExpr ( fullExpr , va1 , va2 ) and
63
- effect ( variableEffect1 , va1 , v1 ) and
64
- effect ( variableEffect2 , va2 , v2 ) and
63
+ destructureEffect ( variableEffect1 , va1 , v1 ) and
64
+ destructureEffect ( variableEffect2 , va2 , v2 ) and
65
65
// Exclude the same effect applying to different objects.
66
66
// This occurs when on is a subject of the other.
67
67
// For example, foo.bar = 1; where both foo and bar are objects modified by the assignment.
0 commit comments