replikativ / konserve

A clojuresque key-value/document store protocol with core.async.
Eclipse Public License 1.0
299 stars 25 forks source link

Remove reflection warnings #40

Closed whilo closed 1 year ago

whilo commented 3 years ago

With the latest alpha we get a bunch of reflection warnings in the datahike test suite. We should activate them in konserve and then remove them.

alekcz commented 3 years ago

@whilo @FerdiKuehne I've opened a pull request on encore #51 as URL encoder and decoder reflection messages come from there.

alekcz commented 3 years ago

@whilo @FerdiKuehne did a bunch of work adding type hints to remove reflection #42 . The last bits of reflection are in:

  1. superv/async
    Reflection warning, superv/async.cljc:110:33 - reference to field getMessage can't be resolved.
    Reflection warning, superv/async.cljc:125:37 - reference to field getMessage can't be resolved.
    Reflection warning, superv/async.cljc:951:40 - reference to field getTime on java.lang.Object can't be resolved.
  2. In the filestore. The reflection in the file store is due to the go-try macro in list-keys rewriting the code. I've add all the hints necessary we just need to see how we can move the hinted parts out of the macro.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - call to method read can't be resolved (target class is unknown).
    Reflection warning, konserve/filestore.clj:586:5 - reference to field clear can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field close can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field clear can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field close can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field getFileName can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field getFileName can't be resolved.
    Reflection warning, konserve/filestore.clj:586:5 - reference to field toString can't be resolved.

    The other bits of reflection are in the tests so we can ignore them.

whilo commented 1 year ago

This should be solved now, we have reflection warnings on in the deps test profile. There is still one in superv.async, but I will leave this for fixing there.