@@ -437,31 +437,58 @@ extension PrettyPrinter {
437437 break
438438
439439 case . intersection( let first, let second) :
440- printAsPattern ( first)
440+ if wrap, first. isSimplePrint {
441+ indent ( )
442+ output ( " One( " )
443+ }
444+
445+ printAsPattern ( first, wrap: false )
441446 printIndented { printer in
442447 printer. indent ( )
443448 printer. output ( " .intersection( " )
444- printer. printAsPattern ( second, terminateLine: false )
449+ printer. printAsPattern ( second, wrap : false , terminateLine: false )
445450 printer. output ( " ) " )
446451 }
447452
453+ if wrap, first. isSimplePrint {
454+ output ( " ) " )
455+ }
456+
448457 case . subtraction( let first, let second) :
449- printAsPattern ( first)
458+ if wrap, first. isSimplePrint {
459+ indent ( )
460+ output ( " One( " )
461+ }
462+
463+ printAsPattern ( first, wrap: false )
450464 printIndented { printer in
451465 printer. indent ( )
452466 printer. output ( " .subtracting( " )
453- printer. printAsPattern ( second, terminateLine: false )
467+ printer. printAsPattern ( second, wrap : false , terminateLine: false )
454468 printer. output ( " ) " )
455469 }
456470
471+ if wrap, first. isSimplePrint {
472+ output ( " ) " )
473+ }
474+
457475 case . symmetricDifference( let first, let second) :
458- printAsPattern ( first)
476+ if wrap, first. isSimplePrint {
477+ indent ( )
478+ output ( " One( " )
479+ }
480+
481+ printAsPattern ( first, wrap: false )
459482 printIndented { printer in
460483 printer. indent ( )
461484 printer. output ( " .symmetricDifference( " )
462- printer. printAsPattern ( second, terminateLine: false )
485+ printer. printAsPattern ( second, wrap : false , terminateLine: false )
463486 printer. output ( " ) " )
464487 }
488+
489+ if wrap, first. isSimplePrint {
490+ output ( " ) " )
491+ }
465492 }
466493 }
467494
0 commit comments