From e5cd2ec27a75dc551986e3725c3b5cdd124a2ffa Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 31 Mar 2019 11:13:19 -0600 Subject: [PATCH] Revert "cptypes: reduce (if t x) ==> (begin (if t (void)) x)" This reverts commit 79f23f2ddb858aa6c69bd1e9314e745145ad2b15. original commit: 83377ac5f916dc4848536f204f49645829007f4a --- mats/cp0.ms | 4 ++-- mats/record.ms | 5 ++--- s/cptypes.ss | 9 ++------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/mats/cp0.ms b/mats/cp0.ms index 36941f4510..bade6706b7 100644 --- a/mats/cp0.ms +++ b/mats/cp0.ms @@ -2873,7 +2873,7 @@ (display "1") (list q n)))))) '(lambda (v) - (let ([v2 (begin (if (#2%vector? v) (#2%void) (#2%error)) v)]) + (let ([v2 (if (#2%vector? v) v (#2%error))]) (let ([q (#2%vector-sort v2)] [n (#3%vector-length v)]) (#2%display "1") (#2%list q n))))) @@ -2886,7 +2886,7 @@ (display "1") (list q n)))))) '(lambda (v) - (let ([q (#2%vector-sort (begin (if (#2%vector? v) (#2%void) (#2%error)) v))] + (let ([q (#2%vector-sort (if (#2%vector? v) v (#2%error)))] [n (if v v 72)]) (#2%display "1") (#2%list q n)))) diff --git a/mats/record.ms b/mats/record.ms index 2cb281024e..4d9726dd14 100644 --- a/mats/record.ms +++ b/mats/record.ms @@ -8586,9 +8586,8 @@ (if b (frob-x x) 72))))) `(lambda (b) (if b - (#3%$record-oops 'frob-x 'x ',record-type-descriptor?) - (#2%void)) - 72)) + (#3%$record-oops 'frob-x 'x ',record-type-descriptor?) + 72))) (equivalent-expansion? (parameterize ([optimize-level 3] [enable-cp0 #t] [#%$suppress-primitive-inlining #f]) (expand/optimize diff --git a/s/cptypes.ss b/s/cptypes.ss index cc46bfd0de..9d42b73fa8 100644 --- a/s/cptypes.ss +++ b/s/cptypes.ss @@ -688,15 +688,10 @@ Notes: [(f-types3) (or f-types3 types3)]) (let ([ir `(if ,e1 ,e2 ,e3)]) (cond - [(and (predicate-implies? ret2 'bottom) ;check bottom first - (predicate-implies? ret3 'bottom)) ;check bottom first - (values ir ret3 types3 t-types3 f-types3)] [(predicate-implies? ret2 'bottom) ;check bottom first - (values (make-seq ctxt `(if ,e1 ,e2 ,void-rec) e3) - ret3 types3 t-types3 f-types3)] + (values ir ret3 types3 t-types3 f-types3)] [(predicate-implies? ret3 'bottom) ;check bottom first - (values (make-seq ctxt `(if ,e1 ,void-rec ,e3) e2) - ret2 types2 t-types2 f-types2)] + (values ir ret2 types2 t-types2 f-types2)] [else (let ([new-types (pred-env-union/super-base types2 t-types1 types3 f-types1