Ok, concrete.

Here's one mistake I made the other day. I created a ref, and then
forgot to access it using @. The example code is

(def my_map (ref {:a 1, :b 2}))
(def map_vals (vals my_map))

$ java -cp clojure-clean.jar clojure.lang.Repl bad-ref.clj
java.lang.IllegalArgumentException: Don't know how to create ISeq
from: Ref
        at clojure.lang.RT.seqFrom(RT.java:465)
        at clojure.lang.RT.seq(RT.java:448)
        at clojure.lang.RT.vals(RT.java:473)
        at clojure.vals__470.invoke(boot.clj:893)
        at clojure.lang.AFn.applyToHelper(AFn.java:184)
        at clojure.lang.AFn.applyTo(AFn.java:175)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2589)
        at clojure.lang.Compiler$DefExpr.eval(Compiler.java:282)
        at clojure.lang.Compiler.eval(Compiler.java:3896)
        at clojure.lang.Compiler.load(Compiler.java:4192)
        at clojure.lang.Compiler.loadFile(Compiler.java:4159)
        at clojure.lang.Repl.main(Repl.java:48)

And then here's the stack trace from the real code:
java.lang.IllegalArgumentException: Don't know how to create ISeq
from: Ref
        at clojure.lang.RT.seqFrom(RT.java:465)
        at clojure.lang.RT.seq(RT.java:448)
        at clojure.lang.RT.vals(RT.java:473)
        at clojure.vals__470.invoke(boot.clj:893)
        at clojure.lang.AFn.applyToHelper(AFn.java:184)
        at clojure.lang.AFn.applyTo(AFn.java:175)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2589)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2588)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2588)
        at clojure.lang.Compiler$DefExpr.eval(Compiler.java:282)
        at clojure.lang.Compiler.eval(Compiler.java:3896)
        at clojure.lang.Compiler.load(Compiler.java:4196)
        at clojure.lang.RT.loadResourceScript(RT.java:360)
        at clojure.lang.RT.loadResourceScript(RT.java:347)
        at clojure.lang.RT.loadResourceScript(RT.java:339)
        at clojure.load__1722$fn__1724.invoke(boot.clj:3195)
        at clojure.load__1722.doInvoke(boot.clj:3194)
        at clojure.lang.RestFn.invoke(RestFn.java:413)
        at clojure.load_one__1685.invoke(boot.clj:3041)
        at clojure.load_lib__1705.doInvoke(boot.clj:3078)
        at clojure.lang.RestFn.applyTo(RestFn.java:147)
        at clojure.apply__135.doInvoke(boot.clj:364)
        at clojure.lang.RestFn.invoke(RestFn.java:443)
        at clojure.load_libs__1709.doInvoke(boot.clj:3104)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.apply__135.doInvoke(boot.clj:364)
        at clojure.lang.RestFn.invoke(RestFn.java:443)
        at clojure.require__1713.doInvoke(boot.clj:3163)
        at clojure.lang.RestFn.invoke(RestFn.java:413)
        at user.eval__3155.invoke(start.clj:5)
        at clojure.lang.Compiler.eval(Compiler.java:3891)
        at clojure.lang.Compiler.load(Compiler.java:4196)
        at clojure.lang.Compiler.loadFile(Compiler.java:4163)
        at clojure.lang.Repl.main(Repl.java:48)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Clojure
user=>

The real code is complicated by the fact that I required several
files. If you pay attention to the stack trace, you see that the code
entered at start.clj. Then three files were required, but you can't
tell which file or line blew up.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to