Internal Error "Keyword lookup gave bottom tpe"

Showing 1-13 of 13 messages
Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/5/13 6:21 PM
I'm assuming that the "Internal" refers to a bug...

The error refers to the second line below, where the exception is thrown:

35                    (let [doc (http/request {:url url :method :get} identity)
36                              (if (not= (:status @doc) 200) (throw (Exception. (str "Got bad status: " @doc))))

This is 0.2.4, and check-ns results in the following stack trace:


Clojure.lang.ExceptionInfo: Internal Error (imdb.core:36:35) Keyword lookup gave bottom type: :status Nothing
 at clojure.core$ex_info.invoke (core.clj:4327)
    clojure.core.typed.utils$int_error.invoke (utils.clj:135)
    clojure.core.typed.check$invoke_keyword.invoke (check.clj:1619)
    clojure.core.typed.check$check _COLON_keyword_invoke13591.doInvoke (check.clj:1524)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$dorun.invoke (core.clj:2780)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$normal_invoke.doInvoke (check.clj:2504)
    clojure.lang.RestFn.invoke (RestFn.java:529)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2531)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check _COLON_if14835$fn__14840.invoke (check.clj:4383)
    clojure.core.typed.check$check _COLON_if14835.doInvoke (check.clj:4382)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14606$fn__14615.invoke (check.clj:3608)
    clojure.core.typed.check$check_let$fn__14606.invoke (check.clj:3605)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3648)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$ann_form_STAR_)13772.doInvoke (check.clj:1831)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2516)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.Cons.next (Cons.java:39)
    clojure.lang.LazySeq.next (LazySeq.java:92)
    clojure.lang.RT.next (RT.java:598)
    clojure.core$next.invoke (core.clj:64)
    clojure.core$dorun.invoke (core.clj:2781)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$normal_invoke.doInvoke (check.clj:2504)
    clojure.lang.RestFn.invoke (RestFn.java:529)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2531)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3655)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check_if$tc__14817.invoke (check.clj:4272)
    clojure.core.typed.check$check_if$fn__14823.invoke (check.clj:4306)
    clojure.core.typed.check$check_if.doInvoke (check.clj:4304)
    clojure.lang.RestFn.invoke (RestFn.java:445)
    clojure.core.typed.check$check _COLON_if14835$fn__14842.invoke (check.clj:4386)
    clojure.core.typed.check$check _COLON_if14835.doInvoke (check.clj:4385)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3653)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:749)
    clojure.core.typed.check$check _COLON_let14642$fn__14647.invoke (check.clj:3773)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3772)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__14317.invoke (check.clj:3016)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3013)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2885)
    clojure.core.typed.check$check_fn$fn__14258$fn__14265.invoke (check.clj:2858)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__14258.invoke (check.clj:2857)
    clojure.core.typed.check$check_fn.invoke (check.clj:2840)
    clojure.core.typed.check$check _COLON_fn_expr14170$fn__14181.invoke (check.clj:2609)
    clojure.core.typed.check$check _COLON_fn_expr14170.doInvoke (check.clj:2589)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2519)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$loop_GT__ann)13826.doInvoke (check.clj:1892)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2516)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check _COLON_if14835$fn__14840.invoke (check.clj:4383)
    clojure.core.typed.check$check _COLON_if14835.doInvoke (check.clj:4382)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3655)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check_if$tc__14817.invoke (check.clj:4272)
    clojure.core.typed.check$check_if$fn__14823.invoke (check.clj:4306)
    clojure.core.typed.check$check_if.doInvoke (check.clj:4304)
    clojure.lang.RestFn.invoke (RestFn.java:445)
    clojure.core.typed.check$check _COLON_if14835$fn__14842.invoke (check.clj:4386)
    clojure.core.typed.check$check _COLON_if14835.doInvoke (check.clj:4385)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3655)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check_if$tc__14817.invoke (check.clj:4272)
    clojure.core.typed.check$check_if$fn__14823.invoke (check.clj:4306)
    clojure.core.typed.check$check_if.doInvoke (check.clj:4304)
    clojure.lang.RestFn.invoke (RestFn.java:445)
    clojure.core.typed.check$check _COLON_if14835$fn__14842.invoke (check.clj:4386)
    clojure.core.typed.check$check _COLON_if14835.doInvoke (check.clj:4385)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3655)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14631.invoke (check.clj:3653)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3650)
    clojure.lang.RestFn.invoke (RestFn.java:749)
    clojure.core.typed.check$check _COLON_let14642$fn__14647.invoke (check.clj:3773)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3772)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__14317.invoke (check.clj:3016)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3013)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2885)
    clojure.core.typed.check$check_fn$fn__14258$fn__14265.invoke (check.clj:2858)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__14258.invoke (check.clj:2857)
    clojure.core.typed.check$check_fn.invoke (check.clj:2840)
    clojure.core.typed.check$check _COLON_fn_expr14170$fn__14181.invoke (check.clj:2609)
    clojure.core.typed.check$check _COLON_fn_expr14170.doInvoke (check.clj:2589)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2519)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$loop_GT__ann)13826.doInvoke (check.clj:1892)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2516)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__14317.invoke (check.clj:3016)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3013)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2885)
    clojure.core.typed.check$check_fn$fn__14258$fn__14265.invoke (check.clj:2858)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__14258.invoke (check.clj:2857)
    clojure.core.typed.check$check_fn.invoke (check.clj:2840)
    clojure.core.typed.check$check _COLON_fn_expr14170$fn__14181.invoke (check.clj:2609)
    clojure.core.typed.check$check _COLON_fn_expr14170.doInvoke (check.clj:2589)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core$mapv$fn__6258.invoke (core.clj:6241)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core$mapv.invoke (core.clj:6241)
    clojure.core.typed.check$check _COLON_new14506.doInvoke (check.clj:3501)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__14317.invoke (check.clj:3016)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3013)
    clojure.core.typed.check$check_fn_method$iter__14276__14280$fn__14281$fn__14282.invoke (check.clj:2889)
    clojure.core.typed.check$check_fn_method$iter__14276__14280$fn__14281.invoke (check.clj:2888)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$dorun.invoke (core.clj:2780)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2888)
    clojure.core.typed.check$check_fn$fn__14258$fn__14265.invoke (check.clj:2858)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__14258.invoke (check.clj:2857)
    clojure.core.typed.check$check_fn.invoke (check.clj:2840)
    clojure.core.typed.check$check _COLON_fn_expr14170$fn__14181.invoke (check.clj:2609)
    clojure.core.typed.check$check _COLON_fn_expr14170.doInvoke (check.clj:2589)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$ann_form_STAR_)13772.doInvoke (check.clj:1831)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_invoke14085$fn__14090.invoke (check.clj:2516)
    clojure.core.typed.check$check _COLON_invoke14085.doInvoke (check.clj:2515)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14606$fn__14615.invoke (check.clj:3608)
    clojure.core.typed.check$check_let$fn__14606.invoke (check.clj:3605)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3648)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__14606$fn__14615.invoke (check.clj:3608)
    clojure.core.typed.check$check_let$fn__14606.invoke (check.clj:3605)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3648)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let14642.doInvoke (check.clj:3775)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do14339$fn__14347$fn__14350.invoke (check.clj:3077)
    clojure.core.typed.check$check _COLON_do14339$fn__14347.invoke (check.clj:3069)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do14339.doInvoke (check.clj:3104)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__14317.invoke (check.clj:3016)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3013)
    clojure.core.typed.check$check_fn_method$iter__14276__14280$fn__14281$fn__14282.invoke (check.clj:2889)
    clojure.core.typed.check$check_fn_method$iter__14276__14280$fn__14281.invoke (check.clj:2888)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$dorun.invoke (core.clj:2780)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2888)
    clojure.core.typed.check$check_fn$fn__14258$fn__14265.invoke (check.clj:2858)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__14258.invoke (check.clj:2857)
    clojure.core.typed.check$check_fn.invoke (check.clj:2840)
    clojure.core.typed.check$check _COLON_fn_expr14170$fn__14181.invoke (check.clj:2609)
    clojure.core.typed.check$check _COLON_fn_expr14170.doInvoke (check.clj:2589)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_normal_def.doInvoke (check.clj:4408)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check _COLON_def14857.doInvoke (check.clj:4446)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_expr.doInvoke (check.clj:181)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.core.typed.check$check_ns_and_deps.invoke (check.clj:150)
    clojure.core.typed$check_ns.doInvoke (typed.clj:1327)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.core.typed$check_ns.invoke (typed.clj:1290)
    imdb.core$eval6954.invoke (NO_SOURCE_FILE:1)
    clojure.lang.Compiler.eval (Compiler.java:6619)
    clojure.lang.Compiler.eval (Compiler.java:6582)
    clojure.core$eval.invoke (core.clj:2852)
    clojure.main$repl$read_eval_print__6588$fn__6591.invoke (main.clj:259)
    clojure.main$repl$read_eval_print__6588.invoke (main.clj:259)
    clojure.main$repl$fn__6597.invoke (main.clj:277)
    clojure.main$repl.doInvoke (main.clj:277)
    clojure.lang.RestFn.invoke (RestFn.java:1096)
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__589.invoke (interruptible_eval.clj:56)
    clojure.lang.AFn.applyToHelper (AFn.java:159)
    clojure.lang.AFn.applyTo (AFn.java:151)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$with_bindings_STAR_.doInvoke (core.clj:1788)
    clojure.lang.RestFn.invoke (RestFn.java:425)
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:41)
    clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__630$fn__633.invoke (interruptible_eval.clj:171)
    clojure.core$comp$fn__4154.invoke (core.clj:2330)
    clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__623.invoke (interruptible_eval.clj:138)
    clojure.lang.AFn.run (AFn.java:24)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615)
    java.lang.Thread.run (Thread.java:722)

Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/5/13 7:14 PM
Hi Peter,

Could you show me the output of putting (print-env "before deref") before the `if`?

Thanks,
Ambrose
Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/6/13 7:50 AM
On Thursday, September 5, 2013 10:14:39 PM UTC-4, Ambrose Bonnaire-Sergeant wrote:
Hi Peter,

Could you show me the output of putting (print-env "before deref") before the `if`?


Before and right before (wasn't sure if it mattered):

                      (let [doc (http/request {:url url :method :get} identity)
                            _ (t/print-env "before deref")
                            _  (if (not= (:status @doc) 200) (throw (Exception. (str "Got bad status: " @doc))))


{:env {s__80838258 (clojure.core.typed/NonEmptySeq java.lang.String), c__73__auto__ (clojure.lang.IChunk java.lang.String), id java.lang.String, i__8084 (U java.lang.Long java.lang.Integer), _ nil, temp__4092__auto__ (I (clojure.lang.ISeq java.lang.String) (CountRange 1)), b__8085 (clojure.lang.ChunkBuffer (clojure.core.typed/Seq (HMap :mandatory {:title java.lang.String, :links (clojure.core.typed/Seq java.lang.String), :id java.lang.String}))), urls (U [java.lang.String java.lang.String] [java.lang.String]), size__74__auto__ int, iter__8082 (Fn [(clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)) -> (clojure.lang.LazySeq (clojure.core.typed/Seq (HMap :mandatory {:title java.lang.String, :links (clojure.core.typed/Seq java.lang.String), :id java.lang.String})))]), url java.lang.String, s__8083 (clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)), s__80838131 (clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)), doc Error}, :props ((when (is (U nil false) s__80838258
) (is (U nil false) temp__4092__auto__)) (when (! (U nil false) s__80838131) (! (U nil false) s__8083)) (! (U nil false) temp__4092__auto__) (when (is (U nil false) urls) ff) (when (! (U nil false) s__80838258) (! (U nil false) temp__4092__auto__)) (when (is (U nil false) s__80838131) (is (U nil false) s__8083)))}

                      (let [doc (http/request {:url url :method :get} identity)
                              (do (t/print-env "before deref") (if (not= (:status @doc) 200) (throw (Exception. (str "Got bad status: " @doc)))))


{:env {s__85268715 (clojure.core.typed/NonEmptySeq java.lang.String), c__73__auto__ (clojure.lang.IChunk java.lang.String), id java.lang.String, s__8526 (clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)), s__85268574 (clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)), _ nil, b__8528 (clojure.lang.ChunkBuffer (clojure.core.typed/Seq (HMap :mandatory {:title java.lang.String, :links (clojure.core.typed/Seq java.lang.String), :id java.lang.String}))), temp__4092__auto__ (I (clojure.lang.ISeq java.lang.String) (CountRange 1)), iter__8525 (Fn [(clojure.core.typed/Option (clojure.lang.Seqable java.lang.String)) -> (clojure.lang.LazySeq (clojure.core.typed/Seq (HMap :mandatory {:title java.lang.String, :links (clojure.core.typed/Seq java.lang.String), :id java.lang.String})))]), i__8527 (U java.lang.Long java.lang.Integer), urls (U [java.lang.String java.lang.String] [java.lang.String]), size__74__auto__ int, url java.lang.String, doc Error}, :props ((! (U nil false) temp__4092__auto__
) (when (is (U nil false) s__85268574) (is (U nil false) s__8526)) (when (is (U nil false) urls) ff) (when (is (U nil false) s__85268715) (is (U nil false) temp__4092__auto__)) (when (! (U nil false) s__85268574) (! (U nil false) s__8526)) (when (! (U nil false) s__85268715) (! (U nil false) temp__4092__auto__)))}


Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/6/13 11:45 AM
I can make the internal error go away by annotating the httpkit call:
  (t/ann org.httpkit.client/request ['{:url String :method (Value :get)} -> (t/Atom1 String)])
I annotate it incorrectly (as I did at first), I'll get the expected error but not the internal error.
Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/6/13 9:07 PM
Thanks Peter. It should be fixed in master, please follow the instructions on the ticket to verify.


Ambrose
Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/7/13 7:07 AM
There's no longer an Internal Error message, but I do get the assertion failure below, and check-ns aborts without checking further.


java.lang.AssertionError: Assert failed: (TCResult? %)
 at clojure.core.typed.check$invoke_keyword.invoke (check.clj:1589)
    clojure.core.typed.check$check _COLON_keyword_invoke15066.doInvoke (check.clj:1524)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$dorun.invoke (core.clj:2780)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$normal_invoke.doInvoke (check.clj:2505)
    clojure.lang.RestFn.invoke (RestFn.java:529)
    clojure.core.typed.check$check _COLON_invoke15560$fn__15565.invoke (check.clj:2532)
    clojure.core.typed.check$check _COLON_invoke15560.doInvoke (check.clj:2516)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.MultiFn.invoke (MultiFn.java:227)
    clojure.core.typed.check$check _COLON_if16310$fn__16315.invoke (check.clj:4384)
    clojure.core.typed.check$check _COLON_if16310.doInvoke (check.clj:4383)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_let$fn__16081$fn__16090.invoke (check.clj:3609)
    clojure.core.typed.check$check_let$fn__16081.invoke (check.clj:3606)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check_let.doInvoke (check.clj:3649)
    clojure.lang.RestFn.invoke (RestFn.java:587)
    clojure.core.typed.check$check _COLON_let16117.doInvoke (check.clj:3776)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check _COLON_do15814$fn__15822$fn__15825.invoke (check.clj:3078)
    clojure.core.typed.check$check _COLON_do15814$fn__15822.invoke (check.clj:3070)
    clojure.core.protocols/fn (protocols.clj:143)
    clojure.core.protocols$fn__6005$G__6000__6014.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)
    clojure.core.protocols/fn (protocols.clj:54)
    clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
    clojure.core$reduce.invoke (core.clj:6177)
    clojure.core.typed.check$check _COLON_do15814.doInvoke (check.clj:3105)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_fn_method1$fn__15792.invoke (check.clj:3017)
    clojure.core.typed.check$check_fn_method1.invoke (check.clj:3014)
    clojure.core.typed.check$check_fn_method$iter__15751__15755$fn__15756$fn__15757.invoke (check.clj:2890)
    clojure.core.typed.check$check_fn_method$iter__15751__15755$fn__15756.invoke (check.clj:2889)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$dorun.invoke (core.clj:2780)
    clojure.core$doall.invoke (core.clj:2796)
    clojure.core.typed.check$check_fn_method.invoke (check.clj:2889)
    clojure.core.typed.check$check_fn$fn__15733$fn__15740.invoke (check.clj:2859)
    clojure.core$map$fn__4207.invoke (core.clj:2487)
    clojure.lang.LazySeq.sval (LazySeq.java:42)
    clojure.lang.LazySeq.seq (LazySeq.java:60)
    clojure.lang.RT.seq (RT.java:484)
    clojure.core$seq.invoke (core.clj:133)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$mapcat.doInvoke (core.clj:2514)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check_fn$fn__15733.invoke (check.clj:2858)
    clojure.core.typed.check$check_fn.invoke (check.clj:2841)
    clojure.core.typed.check$check _COLON_fn_expr15645$fn__15656.invoke (check.clj:2610)
    clojure.core.typed.check$check _COLON_fn_expr15645.doInvoke (check.clj:2590)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_normal_def.doInvoke (check.clj:4409)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.core.typed.check$check _COLON_def16332.doInvoke (check.clj:4447)
    clojure.lang.RestFn.invoke (RestFn.java:423)
    clojure.lang.MultiFn.invoke (MultiFn.java:231)
    clojure.core.typed.check$check_expr.doInvoke (check.clj:181)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.core.typed.check$check_ns_and_deps.invoke (check.clj:150)
    clojure.core.typed$check_ns.doInvoke (typed.clj:1327)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.core.typed$check_ns.invoke (typed.clj:1290)
    imdb.core$eval6082.invoke (NO_SOURCE_FILE:1)
    clojure.lang.Compiler.eval (Compiler.java:6619)
    clojure.lang.Compiler.eval (Compiler.java:6582)
    clojure.core$eval.invoke (core.clj:2852)
    clojure.main$repl$read_eval_print__6588$fn__6591.invoke (main.clj:259)
    clojure.main$repl$read_eval_print__6588.invoke (main.clj:259)
    clojure.main$repl$fn__6597.invoke (main.clj:277)
    clojure.main$repl.doInvoke (main.clj:277)
    clojure.lang.RestFn.invoke (RestFn.java:1096)
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__589.invoke (interruptible_eval.clj:56)
    clojure.lang.AFn.applyToHelper (AFn.java:159)
    clojure.lang.AFn.applyTo (AFn.java:151)
    clojure.core$apply.invoke (core.clj:617)
    clojure.core$with_bindings_STAR_.doInvoke (core.clj:1788)
    clojure.lang.RestFn.invoke (RestFn.java:425)
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:41)
    clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__630$fn__633.invoke (interruptible_eval.clj:171)
    clojure.core$comp$fn__4154.invoke (core.clj:2330)
    clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__623.invoke (interruptible_eval.clj:138)
    clojure.lang.AFn.run (AFn.java:24)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615)
    java.lang.Thread.run (Thread.java:722)

Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/7/13 7:32 AM
Ahem, forgot to add a unit test to verify it :)

Please try 0.2.5-20130907.143145-5
Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/7/13 5:35 PM
No joy.  Here is a complete example, including the project.clj: https://gist.github.com/pnf/e208b0d44860aedc9c9d
Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/7/13 8:31 PM
Well at least we've made some progress, that error is a few forms outwards from the original one.
Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/7/13 11:32 PM
I can't reproduce. Perhaps "request" has a different annotation for you?


Thanks,
Ambrose
Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/9/13 7:39 AM
I get what you get... with the request annotation in place.  If I comment it out, I get the internal error.  Obviously it is an error, but it probably shouldn't cause an abort of the checking process.

By the way, why do we (both) get the warning about the missing definition when the annotation is in place?
Re: Internal Error "Keyword lookup gave bottom tpe" Ambrose Bonnaire-Sergeant 9/9/13 7:55 AM
The "Definition missing" warning means the def was not checked. That would be fixed if we annotate request with:

(t/ann :^no-check org.httpkit.client/request ['{:url String :method (Value :get)} -> (t/Atom1 '{:status Number :body String})])

Please try 0.2.5-20130909.002504-7

The internal error should now be a warning.

Thanks,
Ambrose
Re: Internal Error "Keyword lookup gave bottom tpe" Peter Fraenkel 9/9/13 5:32 PM
Success!