Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@johnwalker
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save johnwalker/b43315af11bb9dc4a197 to your computer and use it in GitHub Desktop.
Save johnwalker/b43315af11bb9dc4a197 to your computer and use it in GitHub Desktop.
Fails for me on typed-clojure 2.7.69, 2.7.70
(ns experimental-clojure.core
(:require [clojure.core.typed :as t]))
(t/ann add-two (t/IFn [Number -> Number]))
(defn add-two [n]
(+ 2 n))
;; (t/cf add-two)
;; (t/check-ns)
@johnwalker
Copy link
Author

This worked in 2.7.68, but in 2.7.69 and 2.7.70, evaluating (t/check-ns) yields the following exception:

3. Unhandled clojure.lang.Compiler$CompilerException
   Error compiling:
   /home/john/development/experimental-clojure/src/experimental_clojure/core.clj:2:41

                 Compiler.java: 7142  clojure.lang.Compiler/load
                          REPL:    1  user/eval3157
                 Compiler.java: 6703  clojure.lang.Compiler/eval
                 Compiler.java: 6666  clojure.lang.Compiler/eval
                      core.clj: 2927  clojure.core/eval
                      main.clj:  239  clojure.main/repl/read-eval-print/fn
                      main.clj:  239  clojure.main/repl/read-eval-print
                      main.clj:  257  clojure.main/repl/fn
                      main.clj:  257  clojure.main/repl
                   RestFn.java: 1523  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   67  clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
                      AFn.java:  152  clojure.lang.AFn/applyToHelper
                      AFn.java:  144  clojure.lang.AFn/applyTo
                      core.clj:  624  clojure.core/apply
                      core.clj: 1862  clojure.core/with-bindings*
                   RestFn.java:  425  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   51  clojure.tools.nrepl.middleware.interruptible-eval/evaluate
        interruptible_eval.clj:  183  clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
        interruptible_eval.clj:  152  clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
                      AFn.java:   22  clojure.lang.AFn/run
       ThreadPoolExecutor.java: 1145  java.util.concurrent.ThreadPoolExecutor/runWorker
       ThreadPoolExecutor.java:  615  java.util.concurrent.ThreadPoolExecutor$Worker/run
                   Thread.java:  745  java.lang.Thread/run

2. Caused by java.lang.ExceptionInInitializerError
   (No message)

                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 1789  clojure.lang.RestFn/invoke
      base_env_helper_cljs.clj:    1  clojure.core.typed.base-env-helper-cljs/loading--auto--
                           nil:    1  clojure.core.typed.base_env_helper_cljs__init/load
                           nil:   -1  clojure.core.typed.base_env_helper_cljs__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 3894  clojure.lang.RestFn/invoke
              collect_cljs.clj:    1  clojure.core.typed.collect-cljs/loading--auto--
                           nil:    1  clojure.core.typed.collect_cljs__init/load
                           nil:   -1  clojure.core.typed.collect_cljs__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 2088  clojure.lang.RestFn/invoke
           check_ns_common.clj:    1  clojure.core.typed.check-ns-common/loading--auto--
                           nil:    1  clojure.core.typed.check_ns_common__init/load
                           nil:   -1  clojure.core.typed.check_ns_common__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 3894  clojure.lang.RestFn/invoke
                      init.clj:   32  clojure.core.typed.init/load-impl/fn
                      init.clj:   30  clojure.core.typed.init/load-impl
            load_if_needed.clj:   22  clojure.core.typed.load-if-needed/load-if-needed
                     typed.clj:   53  clojure.core.typed/load-if-needed
                     typed.clj: 2224  clojure.core.typed/check-ns
                   RestFn.java:  410  clojure.lang.RestFn/invoke
                     typed.clj: 2222  clojure.core.typed/check-ns
                      core.clj:    9  experimental-clojure.core/eval3169
                 Compiler.java: 6703  clojure.lang.Compiler/eval
                 Compiler.java: 7130  clojure.lang.Compiler/load
                          REPL:    1  user/eval3157
                 Compiler.java: 6703  clojure.lang.Compiler/eval
                 Compiler.java: 6666  clojure.lang.Compiler/eval
                      core.clj: 2927  clojure.core/eval
                      main.clj:  239  clojure.main/repl/read-eval-print/fn
                      main.clj:  239  clojure.main/repl/read-eval-print
                      main.clj:  257  clojure.main/repl/fn
                      main.clj:  257  clojure.main/repl
                   RestFn.java: 1523  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   67  clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
                      AFn.java:  152  clojure.lang.AFn/applyToHelper
                      AFn.java:  144  clojure.lang.AFn/applyTo
                      core.clj:  624  clojure.core/apply
                      core.clj: 1862  clojure.core/with-bindings*
                   RestFn.java:  425  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   51  clojure.tools.nrepl.middleware.interruptible-eval/evaluate
        interruptible_eval.clj:  183  clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
        interruptible_eval.clj:  152  clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
                      AFn.java:   22  clojure.lang.AFn/run
       ThreadPoolExecutor.java: 1145  java.util.concurrent.ThreadPoolExecutor/runWorker
       ThreadPoolExecutor.java:  615  java.util.concurrent.ThreadPoolExecutor$Worker/run
                   Thread.java:  745  java.lang.Thread/run

1. Caused by java.lang.IllegalArgumentException
   No implementation of method: :make-reader of protocol:
   #'clojure.java.io/IOFactory found for class: nil

              core_deftype.clj:  544  clojure.core/-cache-protocol-fn
                        io.clj:   69  clojure.java.io/fn/G
                        io.clj:  102  clojure.java.io/reader
                   RestFn.java:  410  clojure.lang.RestFn/invoke
                   js_deps.clj:  241  cljs.js-deps/goog-dependencies*
                      AFn.java:  152  clojure.lang.AFn/applyToHelper
                      AFn.java:  144  clojure.lang.AFn/applyTo
                      core.clj:  624  clojure.core/apply
                      core.clj: 5846  clojure.core/memoize/fn
                   RestFn.java:  397  clojure.lang.RestFn/invoke
                   js_deps.clj:  265  cljs.js-deps/js-dependency-index
                       env.clj:   45  cljs.env/default-compiler-env
                       env.clj:   42  cljs.env/default-compiler-env
                           nil:   10  clojure.core.typed.util_cljs__init/load
                           nil:   -1  clojure.core.typed.util_cljs__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 1789  clojure.lang.RestFn/invoke
      base_env_helper_cljs.clj:    1  clojure.core.typed.base-env-helper-cljs/loading--auto--
                           nil:    1  clojure.core.typed.base_env_helper_cljs__init/load
                           nil:   -1  clojure.core.typed.base_env_helper_cljs__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 3894  clojure.lang.RestFn/invoke
              collect_cljs.clj:    1  clojure.core.typed.collect-cljs/loading--auto--
                           nil:    1  clojure.core.typed.collect_cljs__init/load
                           nil:   -1  clojure.core.typed.collect_cljs__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 2088  clojure.lang.RestFn/invoke
           check_ns_common.clj:    1  clojure.core.typed.check-ns-common/loading--auto--
                           nil:    1  clojure.core.typed.check_ns_common__init/load
                           nil:   -1  clojure.core.typed.check_ns_common__init/
                    Class.java:   -2  java.lang.Class/forName0
                    Class.java:  270  java.lang.Class/forName
                       RT.java: 2093  clojure.lang.RT/loadClassForName
                       RT.java:  430  clojure.lang.RT/load
                       RT.java:  411  clojure.lang.RT/load
                      core.clj: 5641  clojure.core/load/fn
                      core.clj: 5640  clojure.core/load
                   RestFn.java:  408  clojure.lang.RestFn/invoke
                      core.clj: 5446  clojure.core/load-one
                      core.clj: 5486  clojure.core/load-lib/fn
                      core.clj: 5485  clojure.core/load-lib
                   RestFn.java:  142  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5524  clojure.core/load-libs
                   RestFn.java:  137  clojure.lang.RestFn/applyTo
                      core.clj:  626  clojure.core/apply
                      core.clj: 5607  clojure.core/require
                   RestFn.java: 3894  clojure.lang.RestFn/invoke
                      init.clj:   32  clojure.core.typed.init/load-impl/fn
                      init.clj:   30  clojure.core.typed.init/load-impl
            load_if_needed.clj:   22  clojure.core.typed.load-if-needed/load-if-needed
                     typed.clj:   53  clojure.core.typed/load-if-needed
                     typed.clj: 2224  clojure.core.typed/check-ns
                   RestFn.java:  410  clojure.lang.RestFn/invoke
                     typed.clj: 2222  clojure.core.typed/check-ns
                      core.clj:    9  experimental-clojure.core/eval3169
                 Compiler.java: 6703  clojure.lang.Compiler/eval
                 Compiler.java: 7130  clojure.lang.Compiler/load
                          REPL:    1  user/eval3157
                 Compiler.java: 6703  clojure.lang.Compiler/eval
                 Compiler.java: 6666  clojure.lang.Compiler/eval
                      core.clj: 2927  clojure.core/eval
                      main.clj:  239  clojure.main/repl/read-eval-print/fn
                      main.clj:  239  clojure.main/repl/read-eval-print
                      main.clj:  257  clojure.main/repl/fn
                      main.clj:  257  clojure.main/repl
                   RestFn.java: 1523  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   67  clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
                      AFn.java:  152  clojure.lang.AFn/applyToHelper
                      AFn.java:  144  clojure.lang.AFn/applyTo
                      core.clj:  624  clojure.core/apply
                      core.clj: 1862  clojure.core/with-bindings*
                   RestFn.java:  425  clojure.lang.RestFn/invoke
        interruptible_eval.clj:   51  clojure.tools.nrepl.middleware.interruptible-eval/evaluate
        interruptible_eval.clj:  183  clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
        interruptible_eval.clj:  152  clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
                      AFn.java:   22  clojure.lang.AFn/run
       ThreadPoolExecutor.java: 1145  java.util.concurrent.ThreadPoolExecutor/runWorker
       ThreadPoolExecutor.java:  615  java.util.concurrent.ThreadPoolExecutor$Worker/run
                   Thread.java:  745  java.lang.Thread/run


@johnwalker
Copy link
Author

It was a maven bug. Works for 2.7.71+

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment