   (with-compiler-env state
     (ana/load-core)
     (with-redefs [ana/parse shadow-parse
-                  ana/load-core load-core-noop]
+                  ana/load-core load-core-noop
+                  ana/analyze-form shadow-analyze-form]
 
       (let [;; namespaces that are ready to be used
             ready

    'ns (hijacked-parse-ns env form name opts)
    (default-parse op env form name opts)))

(defn hijacked-analyze-form [orig-analyze-form env form name opts]
  (let [warnings-before
        @*cljs-warnings-ref*

        result
        (orig-analyze-form env form name opts)

        warnings-after
        @*cljs-warnings-ref*]

             ;; so we keep hijacking
             ana/*cljs-ns* ns
             ana/*cljs-file* name]

     (-> (ana/empty-env) ;; this is anything but empty! requires *cljs-ns*, env/*compiler*
         (assoc :context context)
