marick / Midje

Midje provides a migration path from clojure.test to a more flexible, readable, abstract, and gracious style of testing
MIT License
1.69k stars 128 forks source link

Syntax error (IllegalArgumentException) compiling deftype* #465

Closed avelino closed 4 years ago

avelino commented 4 years ago

REPL-y: 0.4.3 nREPL: 0.6.0 Clojure: 1.10.0 OpenJDK: 13.0.1+9

backtarce:

=> (use 'midje.repl)
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.clojure.core, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.repl, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.config, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.emission.levels, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.util.pile, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.emission.api, being replaced by: #'midje.clojure.core/any?
WARNING: any? already refers to: #'clojure.core/any? in namespace: midje.emission.plugins.util, being replaced by: #'midje.clojure.core/any?
WARNING: cat already refers to: #'clojure.core/cat in namespace: net.cgrand.parsley.fold, being replaced by: #'net.cgrand.parsley.fold/cat
Syntax error (IllegalArgumentException) compiling deftype* at (set.clj:12:1).
Must hint overloaded method: toArray
philomates commented 4 years ago

Hi @avelino, thanks for reporting this.

I found a similar issue here: https://github.com/clj-commons/ordered/issues/40 Funny thing is that midje doesn't use that library. I wonder if some other part of your system is pulling it in. Or it is possible that it is just a similar issue but not related directly to the clj-commons ordered lib.

In your project.clj file can you try to pin the version of clj-commons with the fix described in that issue (https://github.com/clj-commons/ordered/pull/37/files): [org.flatland/ordered "1.5.7"] (as mentioned here https://github.com/clj-commons/ordered/pull/37#issuecomment-445393915) ?

Also, what version of midje are you using?

philomates commented 4 years ago

can you also check if org.flatland/ordered is getting pulled into your project with the lein deps :tree command?

avelino commented 4 years ago
 [buddy/buddy-auth "2.2.0"]
   [buddy/buddy-sign "3.1.0"]
     [buddy/buddy-core "1.6.0"]
       [net.i2p.crypto/eddsa "0.3.0"]
       [org.bouncycastle/bcpkix-jdk15on "1.62"]
       [org.bouncycastle/bcprov-jdk15on "1.62"]
   [funcool/cuerdas "2.2.0"]
     [org.clojure/clojurescript "1.10.520"]
       [com.cognitect/transit-clj "0.8.309" :exclusions [[org.clojure/clojure]]]
         [com.cognitect/transit-java "0.8.332"]
           [org.msgpack/msgpack "0.6.12"]
             [com.googlecode.json-simple/json-simple "1.1.1" :exclusions [[junit]]]
             [org.javassist/javassist "3.18.1-GA"]
       [com.google.javascript/closure-compiler-unshaded "v20180805"]
         [args4j "2.0.26"]
         [com.google.code.findbugs/jsr305 "3.0.1"]
         [com.google.code.gson/gson "2.7"]
         [com.google.errorprone/error_prone_annotations "2.0.18"]
         [com.google.guava/guava "25.1-jre"]
           [com.google.j2objc/j2objc-annotations "1.1"]
           [org.checkerframework/checker-qual "2.0.0"]
           [org.codehaus.mojo/animal-sniffer-annotations "1.14"]
         [com.google.javascript/closure-compiler-externs "v20180805"]
         [com.google.jsinterop/jsinterop-annotations "1.0.0"]
         [com.google.protobuf/protobuf-java "3.0.2"]
       [org.clojure/google-closure-library "0.0-20170809-b9c14c6b"]
         [org.clojure/google-closure-library-third-party "0.0-20170809-b9c14c6b"]
       [org.clojure/tools.reader "1.3.0"]
       [org.mozilla/rhino "1.7R5"]
 [cheshire "5.9.0"]
   [com.fasterxml.jackson.core/jackson-core "2.9.9"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.9.9"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.9.9"]
   [tigris "0.1.1"]
 [clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]]
 [compojure "1.6.1"]
   [clout "2.2.1"]
     [instaparse "1.4.8" :exclusions [[org.clojure/clojure]]]
   [medley "1.0.0"]
   [org.clojure/tools.macro "0.1.5"]
   [ring/ring-codec "1.1.0"]
   [ring/ring-core "1.6.3"]
     [commons-fileupload "1.3.3"]
     [commons-io "2.5"]
     [crypto-equality "1.0.0"]
     [crypto-random "1.2.0"]
 [environ "1.1.0"]
 [hsqldb "1.8.0.10" :scope "test"]
 [javax.servlet/servlet-api "2.5" :scope "test"]
 [midje "1.6.3" :scope "test"]
   [clj-time "0.6.0"]
   [colorize "0.1.1" :scope "test" :exclusions [[org.clojure/clojure]]]
   [commons-codec "1.9"]
   [dynapath "0.2.0" :scope "test"]
   [gui-diff "0.5.0" :scope "test"]
     [org.clojars.trptcolin/sjacket "0.1.3" :scope "test" :exclusions [[org.clojure/clojure]]]
       [net.cgrand/parsley "0.9.1" :scope "test"]
       [net.cgrand/regex "1.1.0" :scope "test"]
   [ordered "1.2.0" :scope "test" :exclusions [[org.clojure/clojure]]]
   [org.clojure/core.unify "0.5.2" :scope "test" :exclusions [[org.clojure/clojure]]]
   [org.clojure/math.combinatorics "0.0.7" :scope "test"]
   [org.clojure/tools.namespace "0.2.4" :scope "test"]
   [slingshot "0.10.3" :scope "test"]
   [swiss-arrows "1.0.0" :scope "test"]
   [utilize "0.2.3" :scope "test" :exclusions [[org.clojure/clojure]]]
     [joda-time "2.0"]
 [nrepl "0.6.0" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.10.0"]
   [org.clojure/core.specs.alpha "0.2.44"]
   [org.clojure/spec.alpha "0.2.176"]
 [org.clojure/data.json "0.2.6"]
 [org.clojure/java.jdbc "0.7.11"]
 [org.postgresql/postgresql "42.2.9"]
 [ring-mock "0.1.5" :scope "test"]
 [ring/ring-defaults "0.3.2"]
   [javax.servlet/javax.servlet-api "3.1.0"]
   [ring/ring-anti-forgery "1.3.0"]
     [hiccup "1.0.5"]
   [ring/ring-headers "0.3.0"]
   [ring/ring-ssl "0.3.0"]
 [ring/ring-jetty-adapter "1.8.0"]
   [org.eclipse.jetty/jetty-server "9.4.22.v20191022"]
     [org.eclipse.jetty/jetty-http "9.4.22.v20191022"]
       [org.eclipse.jetty/jetty-util "9.4.22.v20191022"]
     [org.eclipse.jetty/jetty-io "9.4.22.v20191022"]
   [ring/ring-servlet "1.8.0"]
philomates commented 4 years ago

can you bump to the latest version of midje (1.9.9) and try again? I believe the ordered dependency was removed a while ago