@@ -23,6 +23,8 @@ deprecated class SummaryComponentStack = Impl::Private::SummaryComponentStack;
2323
2424deprecated module SummaryComponentStack = Impl:: Private:: SummaryComponentStack;
2525
26+ class Provenance = Impl:: Public:: Provenance ;
27+
2628/** A callable with a flow summary, identified by a unique string. */
2729abstract class SummarizedCallable extends LibraryCallable , Impl:: Public:: SummarizedCallable {
2830 bindingset [ this ]
@@ -32,13 +34,16 @@ abstract class SummarizedCallable extends LibraryCallable, Impl::Public::Summari
3234 * DEPRECATED: Use `propagatesFlow` instead.
3335 */
3436 deprecated predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
35- this .propagatesFlow ( input , output , preservesValue , _)
37+ this .propagatesFlow ( input , output , preservesValue , _, _ , _ )
3638 }
3739
3840 override predicate propagatesFlow (
39- string input , string output , boolean preservesValue , string model
41+ string input , string output , boolean preservesValue , Provenance p , boolean isExact , string model
4042 ) {
41- this .propagatesFlow ( input , output , preservesValue ) and model = ""
43+ this .propagatesFlow ( input , output , preservesValue ) and
44+ p = "manual" and
45+ isExact = true and
46+ model = ""
4247 }
4348
4449 /**
@@ -114,7 +119,8 @@ private module LibraryCallbackSummaries {
114119 }
115120
116121 override predicate propagatesFlow (
117- string input , string output , boolean preservesValue , string model
122+ string input , string output , boolean preservesValue , Provenance p , boolean isExact ,
123+ string model
118124 ) {
119125 (
120126 input = "Argument[block]" and
@@ -127,6 +133,8 @@ private module LibraryCallbackSummaries {
127133 )
128134 ) and
129135 preservesValue = true and
136+ p = "hq-generated" and
137+ isExact = true and
130138 model = "heuristic-callback"
131139 }
132140 }
0 commit comments