                                    :class-version     nil
                                    :class-version-str nil
                                    :dependencies      {} })
-        class-reader       (new org.objectweb.asm.ClassReader class-input-stream)
+        class-reader       (org.objectweb.asm.ClassReader. class-input-stream)
         annotation-visitor (proxy [org.objectweb.asm.AnnotationVisitor]
-                                  [org.objectweb.asm.Opcodes/ASM4] ; constructor params
+                                  [org.objectweb.asm.Opcodes/ASM4]
                                   (visitAnnotation [name desc]
                                     (swap! result visit-annotation name desc)
                                     ;annotation-visitor))

(defn class-info-from-file
  "As per class-file, but takes a filename as a string."
  [^String filename]
  (with-open [class-input-stream (new java.io.FileInputStream filename)]
    (class-info class-input-stream)))
                                  [org.objectweb.asm.Opcodes/ASM4]
                                  (visitAnnotation [desc visible]
                                    annotation-visitor))
        method-visitor     (proxy [org.objectweb.asm.MethodVisitor]
                                  [org.objectweb.asm.Opcodes/ASM4]
                                  (visitLocalVariable [local-variable-name desc signature start end index]
                                    (swap! result visit-local-variable local-variable-name desc signature start end index)))
        class-visitor      (proxy [org.objectweb.asm.ClassVisitor]
                                  [org.objectweb.asm.Opcodes/ASM4]
                                  (visit [version access-bitmask class-name signature super-name interfaces]
                                    (swap! result visit version access-bitmask class-name signature super-name interfaces))
                                  (visitField [access-bitmask field-name desc signature value]
                                    (swap! result visit-field access-bitmask field-name desc signature value)
                                    field-visitor)
                                  (visitMethod [access-bitmask method-name desc signature exceptions]
                                    (swap! result visit-method access-bitmask method-name desc signature exceptions)
                                    method-visitor)
;                                  (visitInnerClass [inner-class-name outer-name inner-name access-bitmask]
;                                    (swap! result visit-inner-class inner-class-name outer-name inner-name access-bitmask))
                           )]
    (.accept class-reader class-visitor 0)
    @result))
