@@ -486,6 +486,13 @@ class DataFlowType extends TDataFlowType {
486
486
487
487
/** A node that performs a type cast. */
488
488
class CastNode extends Node {
489
+ CastNode ( ) { none ( ) }
490
+ }
491
+
492
+ /**
493
+ * Holds if `n` should be a FlowCheckNode, which will appear in path summaries.
494
+ */
495
+ predicate flowCheckNodeSpecific ( Node n ) {
489
496
// We include read- and store steps here to force them to be
490
497
// shown in path explanations.
491
498
// This hack is necessary, because we have included some of these
@@ -494,14 +501,9 @@ class CastNode extends Node {
494
501
// We should revert this once, we can remove this steps from the
495
502
// default taint steps; this should be possible once we have
496
503
// implemented flow summaries and recursive content.
497
- CastNode ( ) { readStep ( _, _, this ) or storeStep ( _, _, this ) }
504
+ readStep ( _, _, n ) or storeStep ( _, _, n )
498
505
}
499
506
500
- /**
501
- * Holds if `n` should be a FlowCheckNode, which will appear in path summaries.
502
- */
503
- predicate flowCheckNodeSpecific ( Node n ) { none ( ) }
504
-
505
507
/**
506
508
* Holds if `t1` and `t2` are compatible, that is, whether data can flow from
507
509
* a node of type `t1` to a node of type `t2`.
0 commit comments