@@ -62,18 +62,13 @@ class CfgScope extends Element, @top_level_exprorstmt_parent {
6262
6363private class TAstNode = @callable or @control_flow_element;
6464
65- private Element getAChild ( Element p ) {
66- result = p .getAChild ( ) or
67- result = p .( AssignOperation ) .getExpandedAssignment ( )
68- }
69-
7065pragma [ nomagic]
7166private predicate astNode ( Element e ) {
7267 e = any ( @top_level_exprorstmt_parent p | not p instanceof Attribute )
7368 or
7469 exists ( Element parent |
7570 astNode ( parent ) and
76- e = getAChild ( parent )
71+ e = parent . getAChild ( )
7772 )
7873}
7974
@@ -494,7 +489,6 @@ module Expressions {
494489 not this instanceof LogicalOrExpr and
495490 not this instanceof NullCoalescingExpr and
496491 not this instanceof ConditionalExpr and
497- not this instanceof AssignOperationWithExpandedAssignment and
498492 not this instanceof ConditionallyQualifiedExpr and
499493 not this instanceof ThrowExpr and
500494 not this instanceof ObjectCreation and
@@ -591,8 +585,7 @@ module Expressions {
591585 QualifiedAccessorWrite ( ) {
592586 def .getExpr ( ) = this and
593587 def .getTargetAccess ( ) .( WriteAccess ) instanceof QualifiableExpr and
594- not def instanceof AssignableDefinitions:: OutRefDefinition and
595- not this instanceof AssignOperationWithExpandedAssignment
588+ not def instanceof AssignableDefinitions:: OutRefDefinition
596589 }
597590
598591 /**
@@ -775,26 +768,6 @@ module Expressions {
775768 }
776769 }
777770
778- /**
779- * An assignment operation that has an expanded version. We use the expanded
780- * version in the control flow graph in order to get better data flow / taint
781- * tracking.
782- */
783- private class AssignOperationWithExpandedAssignment extends ControlFlowTree instanceof AssignOperation
784- {
785- private Expr expanded ;
786-
787- AssignOperationWithExpandedAssignment ( ) { expanded = this .getExpandedAssignment ( ) }
788-
789- final override predicate first ( AstNode first ) { first ( expanded , first ) }
790-
791- final override predicate last ( AstNode last , Completion c ) { last ( expanded , last , c ) }
792-
793- final override predicate propagatesAbnormal ( AstNode child ) { none ( ) }
794-
795- final override predicate succ ( AstNode pred , AstNode succ , Completion c ) { none ( ) }
796- }
797-
798771 /** A conditionally qualified expression. */
799772 private class ConditionallyQualifiedExpr extends PostOrderTree instanceof QualifiableExpr {
800773 private Expr qualifier ;
@@ -1552,7 +1525,7 @@ module Statements {
15521525 /** Gets a child of `cfe` that is in CFG scope `scope`. */
15531526 pragma [ noinline]
15541527 private ControlFlowElement getAChildInScope ( AstNode cfe , Callable scope ) {
1555- result = getAChild ( cfe ) and
1528+ result = cfe . getAChild ( ) and
15561529 scope = result .getEnclosingCallable ( )
15571530 }
15581531
0 commit comments