File tree Expand file tree Collapse file tree 2 files changed +29
-9
lines changed Expand file tree Collapse file tree 2 files changed +29
-9
lines changed Original file line number Diff line number Diff line change 754
754
755
755
(defn- read-namespaced-map
756
756
[rdr _ opts pending-forms]
757
- (let [token (read-token rdr :namespaced-map (read-char rdr))]
757
+ (let [[start-line start-column] (starting-line-col-info rdr)
758
+ token (read-token rdr :namespaced-map (read-char rdr))]
758
759
(if-let [ns (cond
759
760
(= token " :" )
760
761
(ns-name *ns*)
767
768
768
769
(let [ch (read-past whitespace? rdr)]
769
770
(if (identical? ch \{)
770
- (let [items (read-delimited :namespaced-map \} rdr opts pending-forms)]
771
+ (let [items (read-delimited :namespaced-map \} rdr opts pending-forms)
772
+ [end-line end-column] (ending-line-col-info rdr)]
771
773
(when (odd? (count items))
772
774
(err/throw-odd-map rdr nil nil items))
773
775
(let [keys (namespace-keys (str ns ) (take-nth 2 items))
774
776
vals (take-nth 2 (rest items))]
775
777
(when-not (= (count (set keys)) (count keys))
776
778
(err/throw-dup-keys rdr :namespaced-map keys))
777
- (zipmap keys vals)))
778
- (err/throw-ns-map-no-map rdr token)))
779
- (err/throw-bad-ns rdr token))))
779
+ (with-meta (zipmap keys vals)
780
+ (when start-line
781
+ (merge
782
+ (when-let [file (get-file-name rdr)]
783
+ {:file file})
784
+ {:line start-line
785
+ :column start-column
786
+ :end-line end-line
787
+ :end-column end-column})))))
788
+ (err/throw-ns-map-no-map rdr token)))
789
+ (err/throw-bad-ns rdr token))))
780
790
781
791
(defn- macros [ch]
782
792
(case ch
Original file line number Diff line number Diff line change 752
752
753
753
(defn- read-namespaced-map
754
754
[rdr _ opts pending-forms]
755
- (let [token (read-token rdr :namespaced-map (read-char rdr))]
755
+ (let [[start-line start-column] (starting-line-col-info rdr)
756
+ token (read-token rdr :namespaced-map (read-char rdr))]
756
757
(if-let [ns (cond
757
758
(= token " :" )
758
759
(ns-name *ns*)
765
766
766
767
(let [ch (read-past whitespace? rdr)]
767
768
(if (identical? ch \{)
768
- (let [items (read-delimited :namespaced-map \} rdr opts pending-forms)]
769
+ (let [items (read-delimited :namespaced-map \} rdr opts pending-forms)
770
+ [end-line end-column] (ending-line-col-info rdr)]
769
771
(when (odd? (count items))
770
772
(err/throw-odd-map rdr nil nil items))
771
773
(let [keys (take-nth 2 items)
772
774
vals (take-nth 2 (rest items))]
773
-
774
- (RT/map (to-array (mapcat list (namespace-keys (str ns ) keys) vals)))))
775
+ (with-meta
776
+ (RT/map (to-array (mapcat list (namespace-keys (str ns ) keys) vals)))
777
+ (when start-line
778
+ (merge
779
+ (when-let [file (get-file-name rdr)]
780
+ {:file file})
781
+ {:line start-line
782
+ :column start-column
783
+ :end-line end-line
784
+ :end-column end-column})))))
775
785
(err/throw-ns-map-no-map rdr token)))
776
786
(err/throw-bad-ns rdr token))))
777
787
You can’t perform that action at this time.
0 commit comments