     '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]
+(def default-analyze-form ana/analyze-form)
+
+;; FIXME: doing this so I can access the form that caused a warning
+;; some warnings do not include it, should really provide patches to add them
+;; but this is simpler and an experiment anyways
+(defn shadow-analyze-form
+  [env form name opts]
   (let [warnings-before
         @*cljs-warnings-ref*
 
         result
-        (orig-analyze-form env form name opts)
+        (default-analyze-form env form name opts)
 
         warnings-after
         @*cljs-warnings-ref*]

  (with-compiler-env state
    (ana/load-core)
    (with-redefs [ana/parse shadow-parse
                  ana/load-core load-core-noop]

      (let [;; namespaces that are ready to be used
            ready

  (with-compiler-env state
    (ana/load-core)
    (with-redefs [ana/parse shadow-parse
                  ana/load-core load-core-noop
                  ana/analyze-form shadow-analyze-form]

      (reduce
        (fn [state source-name]
