aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/compiler/core.clj
diff options
context:
space:
mode:
Diffstat (limited to 'luxc/src/lux/compiler/core.clj')
-rw-r--r--luxc/src/lux/compiler/core.clj11
1 files changed, 7 insertions, 4 deletions
diff --git a/luxc/src/lux/compiler/core.clj b/luxc/src/lux/compiler/core.clj
index f2fe09887..88da626bd 100644
--- a/luxc/src/lux/compiler/core.clj
+++ b/luxc/src/lux/compiler/core.clj
@@ -50,13 +50,16 @@
tag-groups &a-module/tag-groups
:let [def-entries (->> defs
(&/|map (fn [_def]
- (|let [[?name ?alias [exported? ?def-type ?def-anns ?def-value]] _def]
- (if (= "" ?alias)
+ (|let [[?name _definition] _def]
+ (|case _definition
+ (&/$Left [_dmodule _dname])
+ (str ?name datum-separator _dmodule &/+name-separator+ _dname)
+
+ (&/$Right [exported? ?def-type ?def-anns ?def-value])
(str ?name
datum-separator (if exported? "1" "0")
datum-separator (&&&type/serialize-type ?def-type)
- datum-separator (&&&ann/serialize ?def-anns))
- (str ?name datum-separator ?alias)))))
+ datum-separator (&&&ann/serialize ?def-anns))))))
(&/|interpose entry-separator)
(&/fold str ""))
import-entries (->> imports