Comments (7)
Hi, and thanks for the report!
Kibit fails when trying to analyze this line. Similar, but simpler, expressions will also fail:
(use 'jonase.kibit.core)
(def rule '[(apply str (interpose ?x ?y)) (clojure.string/join ?x ?y)])
(def expr '(apply str (interpose " " #{(:tag attr-val)})))
(unify expr rule)
(def rule2 '[(do ?x) ?x])
(def expr2 '(do #{1}))
(unify expr2 rule2)
both attempts to use jonase.kibit.core/unify
above results in a ClassCastException
.
The problem seems to be core.logic
and (non-empty) literal sets as seen below:
user=> (use 'clojure.core.logic)
nilWARNING: == already refers to: #'clojure.core/== in namespace: user, being replaced by: #'clojure.core.logic/==
user=> (unifier '(?x) '(#{}))
({}) ;; Note, not (#{})!
user=> (unifier '(?x) '(#{1}))
IllegalArgumentException Don't know how to create ISeq from: java.lang.Long clojure.lang.RT.seqFrom (RT.java:487)
user=> (unifier '(?x) '([]))
([])
user=> (unifier '(?x) '([1]))
([1])
I'll have to ask @swannodette for help about this issue.
Edit: Also, at a lower level:
user=> (run* [q] (== q #{1}))
IllegalArgumentException Don't know how to create ISeq from: java.lang.Long clojure.lang.RT.seqFrom (RT.java:487)
user=> (run* [q] (== q #{}))
({})
from kibit.
Understood; thanks for investigating this further. Interested to see what @swannodette has to say.
from kibit.
Noted, http://dev.clojure.org/jira/browse/LOGIC-32
Will look into it.
from kibit.
Was a bug in how core.logic dealt with sets. Fixed in 0.6.8.
from kibit.
Thanks @swannodette .
@jonase looking forward to another release of Kibit to include core.logic 0.6.8. Until then, lein install
it is.
from kibit.
I can confirm that for the most recent version of my code base completes fine after bumping core.logic to 0.6.8, and that the two tests in kibit pass as well.
from kibit.
I updated kibit to core.logic 0.6.8 -- thanks @swannodette
from kibit.
Related Issues (20)
- deps.edn / clj support HOT 6
- Faulty suggestions for do in vector HOT 2
- Check failures exit with 0
- Need a possibility for Check failures to return exit code 0 with findings HOT 4
- Release the new version with :repository tag
- Faulty rule for not empty HOT 8
- namespace docstrings break kibit... HOT 8
- Kibit evaluates and runs code it parses with no option to disable it HOT 1
- Kibit chokes on ##NaN, ##Inf, etc. HOT 1
- Kibit blows up on qualified keywords when require has a `:refer` HOT 1
- Using `--replace` removes the namespace qualifier `::`
- Kibit cannot parse namespaces with string requires
- -> and ->> in datomic queries
- Incorrect suggestion when using reducers HOT 1
- Getting conditionals read not allowed error in `cljc` file HOT 2
- Wrong suggestion for `(fn [x] [x x])` HOT 1
- Maintenance Status HOT 6
- Should not suggest eta-reduction for macros HOT 2
- Please Release HOT 4
- Arithmetic advices for expm1 and hypot + others
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kibit.