@@ -175,11 +175,11 @@ module Public {
175175 * A class that exists for QL technical reasons only (the IPA type used
176176 * to represent component stacks needs to be bounded).
177177 */
178- abstract class RequiredSummaryComponentStack extends SummaryComponentStack {
178+ class RequiredSummaryComponentStack extends Unit {
179179 /**
180180 * Holds if the stack obtained by pushing `head` onto `tail` is required.
181181 */
182- abstract predicate required ( SummaryComponent c ) ;
182+ abstract predicate required ( SummaryComponent head , SummaryComponentStack tail ) ;
183183 }
184184
185185 /** A callable with a flow summary. */
@@ -240,9 +240,9 @@ module Private {
240240 newtype TSummaryComponentStack =
241241 TSingletonSummaryComponentStack ( SummaryComponent c ) or
242242 TConsSummaryComponentStack ( SummaryComponent head , SummaryComponentStack tail ) {
243- tail . ( RequiredSummaryComponentStack ) .required ( head )
243+ any ( RequiredSummaryComponentStack x ) .required ( head , tail )
244244 or
245- tail . ( RequiredSummaryComponentStack ) .required ( TParameterSummaryComponent ( _) ) and
245+ any ( RequiredSummaryComponentStack x ) .required ( TParameterSummaryComponent ( _) , tail ) and
246246 head = thisParam ( )
247247 or
248248 derivedFluentFlowPush ( _, _, _, head , tail , _)
@@ -890,9 +890,9 @@ module Private {
890890 }
891891
892892 private class MkStack extends RequiredSummaryComponentStack {
893- MkStack ( ) { interpretSpec ( _ , _ , _ , this ) }
894-
895- override predicate required ( SummaryComponent c ) { interpretSpec ( _ , _ , c , this ) }
893+ override predicate required ( SummaryComponent head , SummaryComponentStack tail ) {
894+ interpretSpec ( _ , _ , head , tail )
895+ }
896896 }
897897
898898 private class SummarizedCallableExternal extends SummarizedCallable {
0 commit comments