Details
-
Type:
Defect
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Patch:Code
Description
Inserting facts into a relation that is defined in another namespace, specifically a namespace that has been required but not referred (I don't see the bug if I :use the other namespace).
I've tracked the problem down to this line:
https://github.com/clojure/core.logic/blob/master/src/main/clojure/clojure/core/logic.clj#L1621
In the facts function, when the relation index gets resolved, the namespace is not taken into account,
index (var-get (resolve (index-sym (.name rel) arity o)))
as it is when resolving the relation set.
rel-set (var-get (ns-resolve rel-ns (set-sym (.name rel) arity)))
Using ns-resolve, with rel-ns, seems to fix the issue for me.
index (var-get (ns-resolve rel-ns (index-sym (.name rel) arity o)))
Attachments
Activity
David Nolen
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Resolution | Completed [ 1 ] | |
| Status | Open [ 1 ] | Resolved [ 5 ] |
Apologies for the slow response. Is this still a problem?