@@ -396,6 +396,63 @@ module Make<InlineExpectationsTestSig Impl> {
396
396
}
397
397
}
398
398
399
+ /**
400
+ * A module that merges three test signatures.
401
+ */
402
+ module MergeTests3< TestSig TestImpl1, TestSig TestImpl2, TestSig TestImpl3> implements TestSig {
403
+ private module M = MergeTests< MergeTests< TestImpl1 , TestImpl2 > , TestImpl3 > ;
404
+
405
+ string getARelevantTag ( ) { result = M:: getARelevantTag ( ) }
406
+
407
+ predicate hasActualResult ( Impl:: Location location , string element , string tag , string value ) {
408
+ M:: hasActualResult ( location , element , tag , value )
409
+ }
410
+
411
+ predicate hasOptionalResult ( Impl:: Location location , string element , string tag , string value ) {
412
+ M:: hasOptionalResult ( location , element , tag , value )
413
+ }
414
+ }
415
+
416
+ /**
417
+ * A module that merges four test signatures.
418
+ */
419
+ module MergeTests4< TestSig TestImpl1, TestSig TestImpl2, TestSig TestImpl3, TestSig TestImpl4>
420
+ implements TestSig
421
+ {
422
+ private module M = MergeTests< MergeTests3< TestImpl1 , TestImpl2 , TestImpl3 > , TestImpl4 > ;
423
+
424
+ string getARelevantTag ( ) { result = M:: getARelevantTag ( ) }
425
+
426
+ predicate hasActualResult ( Impl:: Location location , string element , string tag , string value ) {
427
+ M:: hasActualResult ( location , element , tag , value )
428
+ }
429
+
430
+ predicate hasOptionalResult ( Impl:: Location location , string element , string tag , string value ) {
431
+ M:: hasOptionalResult ( location , element , tag , value )
432
+ }
433
+ }
434
+
435
+ /**
436
+ * A module that merges five test signatures.
437
+ */
438
+ module MergeTests5<
439
+ TestSig TestImpl1, TestSig TestImpl2, TestSig TestImpl3, TestSig TestImpl4, TestSig TestImpl5>
440
+ implements TestSig
441
+ {
442
+ private module M =
443
+ MergeTests< MergeTests4< TestImpl1 , TestImpl2 , TestImpl3 , TestImpl4 > , TestImpl5 > ;
444
+
445
+ string getARelevantTag ( ) { result = M:: getARelevantTag ( ) }
446
+
447
+ predicate hasActualResult ( Impl:: Location location , string element , string tag , string value ) {
448
+ M:: hasActualResult ( location , element , tag , value )
449
+ }
450
+
451
+ predicate hasOptionalResult ( Impl:: Location location , string element , string tag , string value ) {
452
+ M:: hasOptionalResult ( location , element , tag , value )
453
+ }
454
+ }
455
+
399
456
private module LegacyImpl implements TestSig {
400
457
string getARelevantTag ( ) { result = any ( InlineExpectationsTest t ) .getARelevantTag ( ) }
401
458
0 commit comments