      [:invoke-virtual [(if (u/dynamic? var)
                          :clojure.lang.Var/get
                          :clojure.lang.Var/getRawRoot)] :java.lang.Object])))
-  
+
 (defmethod -emit-set! :var
   [{:keys [target val] :as ast} frame]
   `[~@(emit-var target frame)

      ~@(emit (assoc instance :tag class) frame)
      ~@(mapcat #(emit % frame) args)
      ~@(when to-clear?
           [[:insn :ACONST_NULL]
            [:var-insn :clojure.lang.Object/ISTORE 0]])
      [~(if (.isInterface class)
          :invoke-interface
          :invoke-virtual)

  (let [sorted? (sorted? s)]
    (if (empty? s)
      [(if sorted?
         [:get-static :clojure.lang.PersistentTreeSet/EMPTY :clojure.lang.PersistentTreeSet]
         [:get-static :clojure.lang.PersistentHashSet/EMPTY :clojure.lang.PersistentHashSet])]
      `[~@(emit-values-as-array s)
        ~@(if sorted?
            [[:invoke-static [:clojure.lang.RT/seq :java.lang.Object] :clojure.lang.ISeq]
