From 556f28dc47f943eeb6ae9164679835f4c35cd4f4 Mon Sep 17 00:00:00 2001 From: Torsten Becker Date: Mon, 23 Feb 2015 12:53:06 -0500 Subject: [PATCH] Update to latest name mangling map from Clojure. --- src/clj_stacktrace/core.clj | 40 +++++++++++++++++++++---------- test/clj_stacktrace/core_test.clj | 8 +++++++ 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/clj_stacktrace/core.clj b/src/clj_stacktrace/core.clj index 5a51026..1845cd9 100644 --- a/src/clj_stacktrace/core.clj +++ b/src/clj_stacktrace/core.clj @@ -20,18 +20,34 @@ ;; drop any __xyz suffixes ;; sub _PLACEHOLDER_ for the corresponding char (def clojure-fn-subs - [[#"^[^$]*\$" ""] - [#"\$.*" ""] - [#"__\d+.*" ""] - [#"_QMARK_" "?"] - [#"_BANG_" "!"] - [#"_PLUS_" "+"] - [#"_GT_" ">"] - [#"_LT_" "<"] - [#"_EQ_" "="] - [#"_STAR_" "*"] - [#"_SLASH_" "/"] - [#"_" "-"]]) + [[#"^[^$]*\$" ""] + [#"\$.*" ""] + [#"__\d+.*" ""] + [#"_AMPERSAND_" "&"] + [#"_BANG_" "!"] + [#"_BAR_" "|"] + [#"_BSLASH_" "\\"] + [#"_CARET_" "^"] + [#"_CIRCA_" "@"] + [#"_COLON_" ":"] + [#"_DOT_" "."] + [#"_DOUBLEQUOTE_" "\""] + [#"_EQ_" "="] + [#"_GT_" ">"] + [#"_LBRACE_" "{"] + [#"_LBRACK_" "["] + [#"_LT_" "<"] + [#"_PERCENT_" "%"] + [#"_PLUS_" "+"] + [#"_QMARK_" "?"] + [#"_RBRACE_" "}"] + [#"_RBRACK_" "]"] + [#"_SHARP_" "#"] + [#"_SINGLEQUOTE_" "'"] + [#"_SLASH_" "/"] + [#"_STAR_" "*"] + [#"_TILDE_" "~"] + [#"_" "-"]]) (defn- clojure-fn "Returns the clojure function name implied by the bytecode class name." diff --git a/test/clj_stacktrace/core_test.clj b/test/clj_stacktrace/core_test.clj index b93a31a..f354a1f 100644 --- a/test/clj_stacktrace/core_test.clj +++ b/test/clj_stacktrace/core_test.clj @@ -20,6 +20,14 @@ {:clojure true :ns "foo.bar" :fn "biz-bat?" :file "bar.clj" :line 456 :anon-fn true}] + ["foo.bar$biz_SINGLEQUOTE__bar__448" "invoke" "bar.clj" 456 + {:clojure true :ns "foo.bar" :fn "biz'-bar" + :file "bar.clj" :line 456 :anon-fn false}] + + ["foo.bar$biz_DOT_bat__448" "invoke" "bar.clj" 456 + {:clojure true :ns "foo.bar" :fn "biz.bat" + :file "bar.clj" :line 456 :anon-fn false}] + ["foo.bar$repl$fn__5629.invoke" "invoke" "bar.clj" 456 {:clojure true :ns "foo.bar" :fn "repl" :file "bar.clj" :line 456 :anon-fn true}]