|
607 | 607 | (defn use [sci-ctx & args] |
608 | 608 | (apply @sci.impl.utils/eval-use-state sci-ctx args)) |
609 | 609 |
|
610 | | -(defn sci-resolve |
| 610 | +(defn sci-resolve* |
611 | 611 | ([sci-ctx sym] |
612 | 612 | (@sci.impl.utils/eval-resolve-state sci-ctx (:bindings sci-ctx) sym)) |
613 | 613 | ([sci-ctx env sym] |
614 | 614 | (@sci.impl.utils/eval-resolve-state sci-ctx (:bindings sci-ctx) env sym))) |
615 | 615 |
|
| 616 | +(defn sci-resolve |
| 617 | + ([sym] (sci-resolve* (store/get-ctx) sym)) |
| 618 | + ([env sym] (sci-resolve* (store/get-ctx) env sym))) |
| 619 | + |
616 | 620 | (defn sci-refer [& args] |
617 | 621 | (apply @sci.impl.utils/eval-refer-state (store/get-ctx) args)) |
618 | 622 |
|
|
623 | 627 | ([ns sym] |
624 | 628 | (let [ctx (store/get-ctx)] |
625 | 629 | (sci.impl.vars/with-bindings {sci.impl.utils/current-ns (sci-the-ns ctx ns)} |
626 | | - (sci-resolve ctx sym)))) |
| 630 | + (sci-resolve* ctx sym)))) |
627 | 631 | ([ns env sym] |
628 | 632 | (let [ctx (store/get-ctx)] |
629 | 633 | (sci.impl.vars/with-bindings {sci.impl.utils/current-ns (sci-the-ns ctx ns)} |
630 | | - (sci-resolve ctx env sym))))) |
| 634 | + (sci-resolve* ctx env sym))))) |
631 | 635 |
|
632 | 636 | (defn sci-requiring-resolve |
633 | 637 | ([sci-ctx sym] |
634 | 638 | (if (qualified-symbol? sym) |
635 | | - (or (sci-resolve sci-ctx sym) |
| 639 | + (or (sci-resolve* sci-ctx sym) |
636 | 640 | (let [namespace (-> sym namespace symbol)] |
637 | 641 | (require sci-ctx namespace) |
638 | | - (sci-resolve sci-ctx sym))) |
| 642 | + (sci-resolve* sci-ctx sym))) |
639 | 643 | (throw (new #?(:clj IllegalArgumentException |
640 | 644 | :cljs js/Error) |
641 | 645 | (str "Not a qualified symbol: " sym)))))) |
|
1571 | 1575 | 'reduced? (copy-core-var reduced?) |
1572 | 1576 | 'reset! (copy-var core-protocols/reset!* clojure-core-ns {:name 'reset!}) |
1573 | 1577 | 'reset-thread-binding-frame-impl (new-var 'reset-thread-binding-frame-impl sci.impl.vars/reset-thread-binding-frame) |
1574 | | - 'resolve (copy-var sci-resolve clojure-core-ns {:name 'resolve :ctx true}) |
| 1578 | + 'resolve (copy-var sci-resolve clojure-core-ns {:name 'resolve}) |
1575 | 1579 | 'reversible? (copy-core-var reversible?) |
1576 | 1580 | 'rsubseq (copy-core-var rsubseq) |
1577 | 1581 | 'reductions (copy-core-var reductions) |
|
1837 | 1841 |
|
1838 | 1842 | Example: (source-fn 'filter)" |
1839 | 1843 | [ctx x] |
1840 | | - (when-let [v (sci-resolve ctx x)] |
| 1844 | + (when-let [v (sci-resolve* ctx x)] |
1841 | 1845 | (let [{:keys [#?(:clj :file) :line :ns]} (meta v)] |
1842 | 1846 | (when (and line ns) |
1843 | 1847 | (when-let [source (or #?(:clj (when file |
|
0 commit comments