~ chicken-core (master) 0f4f5738ffa3ac925b097893b8798602e8ea3fcf


commit 0f4f5738ffa3ac925b097893b8798602e8ea3fcf
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Sep 5 21:06:55 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Sep 5 21:06:55 2026 +0200

    fix redundant node-traversals in lfa2 pass
    
    This merged result types in conditionals incorrectly and could even
    cause the lfa2 pass to loop endlessly in certain code. Stupid little
    paren error.

diff --git a/lfa2.scm b/lfa2.scm
index 71e5d158..0e5df607 100644
--- a/lfa2.scm
+++ b/lfa2.scm
@@ -376,9 +376,9 @@
                               ae)
                         (walk (third subs)
                               (append (third tr) te)
-                              ae)))
+                              ae))
                  (merge (walk (second subs) te ae)
-                        (walk (third subs) te ae))))
+                        (walk (third subs) te ae)))))
 	  ((quote) (constant-result (first params)))
 	  ((let)
 	   (let* ((val (first subs))
Trap