@@ -620,48 +620,25 @@ predicate barrierNode(Node node, string kind) { barrierNode(node, kind, _) }
620620
621621// adapter class for converting Mad summaries to `SummarizedCallable`s
622622private class SummarizedCallableAdapter extends SummarizedCallable {
623- SummarizedCallableAdapter ( ) { summaryElement ( this , _, _, _, _, _, _) }
623+ string input_ ;
624+ string output_ ;
625+ string kind ;
626+ Provenance p_ ;
627+ boolean isExact_ ;
628+ string model_ ;
624629
625- private predicate relevantSummaryElementManual (
626- string input , string output , string kind , string model
627- ) {
628- exists ( Provenance provenance |
629- summaryElement ( this , input , output , kind , provenance , model , _) and
630- provenance .isManual ( )
631- )
632- }
633-
634- private predicate relevantSummaryElementGenerated (
635- string input , string output , string kind , string model
636- ) {
637- exists ( Provenance provenance |
638- summaryElement ( this , input , output , kind , provenance , model , _) and
639- provenance .isGenerated ( )
640- ) and
641- not exists ( Provenance provenance |
642- neutralElement ( this , "summary" , provenance , _) and
643- provenance .isManual ( )
644- )
645- }
630+ SummarizedCallableAdapter ( ) { summaryElement ( this , input_ , output_ , kind , p_ , model_ , isExact_ ) }
646631
647632 override predicate propagatesFlow (
648- string input , string output , boolean preservesValue , string model
633+ string input , string output , boolean preservesValue , Provenance p , boolean isExact , string model
649634 ) {
650- exists ( string kind |
651- this .relevantSummaryElementManual ( input , output , kind , model )
652- or
653- not this .relevantSummaryElementManual ( _, _, _, _) and
654- this .relevantSummaryElementGenerated ( input , output , kind , model )
655- |
656- if kind = "value" then preservesValue = true else preservesValue = false
657- )
635+ input = input_ and
636+ output = output_ and
637+ ( if kind = "value" then preservesValue = true else preservesValue = false ) and
638+ p = p_ and
639+ isExact = isExact_ and
640+ model = model_
658641 }
659-
660- override predicate hasProvenance ( Provenance provenance ) {
661- summaryElement ( this , _, _, _, provenance , _, _)
662- }
663-
664- override predicate hasExactModel ( ) { summaryElement ( this , _, _, _, _, _, true ) }
665642}
666643
667644final class SinkCallable = SinkModelCallable ;
0 commit comments