aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/analysis/reference.lux
diff options
context:
space:
mode:
authorEduardo Julian2017-11-20 21:46:49 -0400
committerEduardo Julian2017-11-20 21:46:49 -0400
commit3eabc421e559e7e2f903e06eb6b47a2ee0cd25b9 (patch)
treee66ef551837cb895786bb532fe19e621132e81db /new-luxc/source/luxc/lang/analysis/reference.lux
parent4abfd5413b5a7aa540d7c06b387e3426ff5c532c (diff)
- Added parallel compilation.
- Added aliasing. - Several bug fixes. - Some minor refactoring.
Diffstat (limited to 'new-luxc/source/luxc/lang/analysis/reference.lux')
-rw-r--r--new-luxc/source/luxc/lang/analysis/reference.lux13
1 files changed, 10 insertions, 3 deletions
diff --git a/new-luxc/source/luxc/lang/analysis/reference.lux b/new-luxc/source/luxc/lang/analysis/reference.lux
index 25b33881c..7475f269f 100644
--- a/new-luxc/source/luxc/lang/analysis/reference.lux
+++ b/new-luxc/source/luxc/lang/analysis/reference.lux
@@ -13,9 +13,16 @@
(def: (analyse-definition def-name)
(-> Ident (Meta Analysis))
(do macro;Monad<Meta>
- [actualT (macro;find-def-type def-name)
- _ (&;infer actualT)]
- (wrap (code;symbol def-name))))
+ [[actualT def-anns _] (&;with-error-tracking
+ (macro;find-def def-name))]
+ (case (macro;get-symbol-ann (ident-for #;alias) def-anns)
+ (#;Some real-def-name)
+ (analyse-definition real-def-name)
+
+ _
+ (do @
+ [_ (&;infer actualT)]
+ (wrap (code;symbol def-name))))))
(def: (analyse-variable var-name)
(-> Text (Meta (Maybe Analysis)))