Skip to content

plumbing.core/keywordize-map causes shadow-cljs warnings even it is not used in the project #139

@Valdermeyder

Description

@Valdermeyder

Just using plumbing.core causes shadow-cljs warnings even when keywordize-map is not used in the project

plumbing.core/keywordize-map is deprecated
{:warning :fn-deprecated, :line 116, :column 37, :msg "plumbing.core/keywordize-map is deprecated"}
ExceptionInfo: plumbing.core/keywordize-map is deprecated
        shadow.build.compiler/warning-collector (compiler.clj:443)
        shadow.build.compiler/warning-collector (compiler.clj:415)
        clojure.core/partial/fn--5841 (core.clj:2633)
        cljs.analyzer/warning (analyzer.cljc:734)
        cljs.analyzer/warning (analyzer.cljc:732)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:766)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:741)
        cljs.analyzer/parse-invoke (analyzer.cljc:3730)
        cljs.analyzer/parse-invoke (analyzer.cljc:3728)
        cljs.analyzer/analyze-seq* (analyzer.cljc:3975)
        cljs.analyzer/analyze-seq* (analyzer.cljc:3972)
        cljs.analyzer/analyze-seq*-wrap (analyzer.cljc:3979)
        cljs.analyzer/analyze-seq*-wrap (analyzer.cljc:3977)
        cljs.analyzer/analyze-seq (analyzer.cljc:4003)
        cljs.analyzer/analyze-seq (analyzer.cljc:3981)
        cljs.analyzer/analyze-form (analyzer.cljc:4190)
        cljs.analyzer/analyze-form (analyzer.cljc:4187)
        cljs.analyzer/analyze* (analyzer.cljc:4243)
        cljs.analyzer/analyze* (analyzer.cljc:4235)
        cljs.analyzer/analyze (analyzer.cljc:4263)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        cljs.analyzer/analyze (analyzer.cljc:4256)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        cljs.analyzer/analyze (analyzer.cljc:4254)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        shadow.build.cljs-hacks/shadow-parse-invoke*/fn--10896/fn--10897 (cljs_hacks.cljc:752)
        clojure.core/mapv/fn--8445 (core.clj:6912)
        clojure.core.protocols/fn--8159 (protocols.clj:168)
        clojure.core.protocols/fn--8159 (protocols.clj:124)
        clojure.core.protocols/fn--8114/G--8109--8123 (protocols.clj:19)
        clojure.core.protocols/seq-reduce (protocols.clj:31)
        clojure.core.protocols/fn--8144 (protocols.clj:75)
        clojure.core.protocols/fn--8144 (protocols.clj:75)
        clojure.core.protocols/fn--8088/G--8083--8101 (protocols.clj:13)
        clojure.core/reduce (core.clj:6828)
        clojure.core/mapv (core.clj:6903)
        clojure.core/mapv (core.clj:6903)
        shadow.build.cljs-hacks/shadow-parse-invoke*/fn--10896 (cljs_hacks.cljc:752)
        clojure.lang.Delay.deref (Delay.java:42)
        clojure.core/deref (core.clj:2320)
        clojure.core/deref (core.clj:2306)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:911)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:741)
        cljs.analyzer/parse-invoke (analyzer.cljc:3730)
        cljs.analyzer/parse-invoke (analyzer.cljc:3728)
        cljs.analyzer/analyze-seq* (analyzer.cljc:3975)
        cljs.analyzer/analyze-seq* (analyzer.cljc:3972)
        cljs.analyzer/analyze-seq*-wrap (analyzer.cljc:3979)
        cljs.analyzer/analyze-seq*-wrap (analyzer.cljc:3977)
        cljs.analyzer/analyze-seq (analyzer.cljc:4003)
        cljs.analyzer/analyze-seq (analyzer.cljc:3981)
        cljs.analyzer/analyze-form (analyzer.cljc:4190)
        cljs.analyzer/analyze-form (analyzer.cljc:4187)
        cljs.analyzer/analyze* (analyzer.cljc:4243)
        cljs.analyzer/analyze* (analyzer.cljc:4235)
        cljs.analyzer/analyze (analyzer.cljc:4263)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        cljs.analyzer/analyze (analyzer.cljc:4256)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        cljs.analyzer/analyze (analyzer.cljc:4254)
        cljs.analyzer/analyze (analyzer.cljc:4246)
        shadow.build.cljs-hacks/shadow-parse-invoke*/fn--10896/fn--10897 (cljs_hacks.cljc:752)
        clojure.core/mapv/fn--8445 (core.clj:6912)
        clojure.core.protocols/fn--8159 (protocols.clj:168)
        clojure.core.protocols/fn--8159 (protocols.clj:124)
        clojure.core.protocols/fn--8114/G--8109--8123 (protocols.clj:19)
        clojure.core.protocols/seq-reduce (protocols.clj:31)
        clojure.core.protocols/fn--8144 (protocols.clj:75)
        clojure.core.protocols/fn--8144 (protocols.clj:75)
        clojure.core.protocols/fn--8088/G--8083--8101 (protocols.clj:13)
        clojure.core/reduce (core.clj:6828)
        clojure.core/mapv (core.clj:6903)
        clojure.core/mapv (core.clj:6903)
        shadow.build.cljs-hacks/shadow-parse-invoke*/fn--10896 (cljs_hacks.cljc:752)
        clojure.lang.Delay.deref (Delay.java:42)
        clojure.core/deref (core.clj:2320)
        clojure.core/deref (core.clj:2306)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:887)
        shadow.build.cljs-hacks/shadow-parse-invoke* (cljs_hacks.cljc:741)
        cljs.analyzer/parse-invoke (analyzer.cljc:3730)

From the code here I can assume that reason for this is using keywordize-map recursively.
Probably we can alias plumbing.core/keywordize-map to the recommended clojure.walk/keywordize-keys instead of keeping custom implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions