From 40ffde100608fda4794850bc806a14d4ae6701e0 Mon Sep 17 00:00:00 2001
From: Colin Jones <trptcolin@gmail.com>
Date: Sat, 1 Jan 2011 15:58:09 -0600
Subject: [PATCH] Fix error case in eval of walk/macroexpand-all output, refs #438.

---
 src/clj/clojure/walk.clj                   |    2 +-
 test/clojure/test_clojure/clojure_walk.clj |   14 ++++++++++++++
 2 files changed, 15 insertions(+), 1 deletions(-)
 create mode 100644 test/clojure/test_clojure/clojure_walk.clj

diff --git a/src/clj/clojure/walk.clj b/src/clj/clojure/walk.clj
index 613a294..912823b 100644
--- a/src/clj/clojure/walk.clj
+++ b/src/clj/clojure/walk.clj
@@ -128,5 +128,5 @@ the sorting function."}
   "Recursively performs all possible macroexpansions in form."
   {:added "1.1"}
   [form]
-  (prewalk (fn [x] (if (seq? x) (macroexpand x) x)) form))
+  (postwalk (fn [x] (if (seq? x) (macroexpand x) x)) form))
 
diff --git a/test/clojure/test_clojure/clojure_walk.clj b/test/clojure/test_clojure/clojure_walk.clj
new file mode 100644
index 0000000..a650c13
--- /dev/null
+++ b/test/clojure/test_clojure/clojure_walk.clj
@@ -0,0 +1,14 @@
+(ns clojure.test-clojure.clojure-walk
+  (:require [clojure.walk :as walk])
+  (:use clojure.test))
+
+(def case-result (eval (walk/macroexpand-all '(case 1 1 :test))))
+(def more-complex-result
+  (eval (walk/macroexpand-all '(when (= 1 2)
+                                 :wrong
+                                 (case 1 2 :no 1 :yes)))))
+
+(deftest test-macroexpand-all
+  (is (= :test case-result))
+  (is (= :yes more-complex-result)))
+
-- 
1.7.0.4

