user=> (clojure.pprint/pprint `(fn [~'x] (cond-> #{} ~@(->> (.getFields clojure.asm.Opcodes) (filter #(.startsWith (.getName %) "ACC_")) (map (fn [field] `[(= (bit-and ~'x ~(symbol "clojure.asm.Opcodes" (.getName field))) ~(symbol "clojure.asm.Opcodes" (.getName field))) (conj ~(keyword (-> (.getName field) (.replaceAll "^ACC_" "") (.toLowerCase))))])) (apply concat)))))
(clojure.core/fn
 [x]
 (clojure.core/cond->
  #{}
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_PUBLIC)
   clojure.asm.Opcodes/ACC_PUBLIC)
  (clojure.core/conj :public)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_PRIVATE)
   clojure.asm.Opcodes/ACC_PRIVATE)
  (clojure.core/conj :private)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_PROTECTED)
   clojure.asm.Opcodes/ACC_PROTECTED)
  (clojure.core/conj :protected)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_STATIC)
   clojure.asm.Opcodes/ACC_STATIC)
  (clojure.core/conj :static)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_FINAL)
   clojure.asm.Opcodes/ACC_FINAL)
  (clojure.core/conj :final)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_SUPER)
   clojure.asm.Opcodes/ACC_SUPER)
  (clojure.core/conj :super)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_SYNCHRONIZED)
   clojure.asm.Opcodes/ACC_SYNCHRONIZED)
  (clojure.core/conj :synchronized)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_OPEN)
   clojure.asm.Opcodes/ACC_OPEN)
  (clojure.core/conj :open)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_TRANSITIVE)
   clojure.asm.Opcodes/ACC_TRANSITIVE)
  (clojure.core/conj :transitive)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_VOLATILE)
   clojure.asm.Opcodes/ACC_VOLATILE)
  (clojure.core/conj :volatile)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_BRIDGE)
   clojure.asm.Opcodes/ACC_BRIDGE)
  (clojure.core/conj :bridge)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_STATIC_PHASE)
   clojure.asm.Opcodes/ACC_STATIC_PHASE)
  (clojure.core/conj :static_phase)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_VARARGS)
   clojure.asm.Opcodes/ACC_VARARGS)
  (clojure.core/conj :varargs)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_TRANSIENT)
   clojure.asm.Opcodes/ACC_TRANSIENT)
  (clojure.core/conj :transient)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_NATIVE)
   clojure.asm.Opcodes/ACC_NATIVE)
  (clojure.core/conj :native)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_INTERFACE)
   clojure.asm.Opcodes/ACC_INTERFACE)
  (clojure.core/conj :interface)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_ABSTRACT)
   clojure.asm.Opcodes/ACC_ABSTRACT)
  (clojure.core/conj :abstract)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_STRICT)
   clojure.asm.Opcodes/ACC_STRICT)
  (clojure.core/conj :strict)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_SYNTHETIC)
   clojure.asm.Opcodes/ACC_SYNTHETIC)
  (clojure.core/conj :synthetic)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_ANNOTATION)
   clojure.asm.Opcodes/ACC_ANNOTATION)
  (clojure.core/conj :annotation)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_ENUM)
   clojure.asm.Opcodes/ACC_ENUM)
  (clojure.core/conj :enum)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_MANDATED)
   clojure.asm.Opcodes/ACC_MANDATED)
  (clojure.core/conj :mandated)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_MODULE)
   clojure.asm.Opcodes/ACC_MODULE)
  (clojure.core/conj :module)
  (clojure.core/=
   (clojure.core/bit-and x clojure.asm.Opcodes/ACC_DEPRECATED)
   clojure.asm.Opcodes/ACC_DEPRECATED)
  (clojure.core/conj :deprecated)))
nil
user=> 

Generated At 2024-02-22T11:43:00-0800 original