Skip to content

Commit df2b5fd

Browse files
committed
tweaks to type support
1 parent afc57a7 commit df2b5fd

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/main/clojure/cljs/compiler.cljc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,18 +476,24 @@
476476
(emitln "throw " throw ";")))
477477

478478
(def base-types
479-
#{"boolean" "Boolean"
479+
#{"null" "*"
480+
"boolean" "Boolean"
480481
"string" "String"
481482
"number" "Number"
482483
"array" "Array"
483484
"object" "Object"
484485
"RegExp"
485486
"Date"})
486487

488+
(def mapped-types
489+
{"nil" "null"})
490+
487491
(defn resolve-type [env ^String t]
488492
(cond
489493
(get base-types t) t
490494

495+
(get mapped-types t) (get mapped-types t)
496+
491497
#?(:clj (.startsWith t "!")
492498
:cljs (gstring/startsWith t "!")) t
493499

@@ -508,13 +514,19 @@
508514
(str ret "=")
509515
ret))))
510516

517+
(defn type-munge [s]
518+
(cond
519+
(= "null" s) s
520+
(= "*" s) s
521+
:else (munge s)))
522+
511523
(defn resolve-types [env ts]
512524
(let [ts (-> ts string/trim (subs 1 (dec (count ts))))
513525
xs (string/split ts #"\|")]
514526
(str
515527
"{"
516528
(->> (map #(resolve-type env %) xs)
517-
(map munge)
529+
(map type-munge)
518530
(string/join "|"))
519531
"}")))
520532

0 commit comments

Comments
 (0)