aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/analyser/reference.lux
diff options
context:
space:
mode:
authorEduardo Julian2017-10-31 23:39:49 -0400
committerEduardo Julian2017-10-31 23:39:49 -0400
commit15121222d570f8fe3c5a326208e4f0bad737e63c (patch)
tree88c93ed1f4965fd0e80677df5553a0d47e521963 /new-luxc/source/luxc/analyser/reference.lux
parenta269ea72337852e8e57bd427773baed111ad6e92 (diff)
- Re-organized analysis.
Diffstat (limited to 'new-luxc/source/luxc/analyser/reference.lux')
-rw-r--r--new-luxc/source/luxc/analyser/reference.lux53
1 files changed, 0 insertions, 53 deletions
diff --git a/new-luxc/source/luxc/analyser/reference.lux b/new-luxc/source/luxc/analyser/reference.lux
deleted file mode 100644
index 5bc1f96c9..000000000
--- a/new-luxc/source/luxc/analyser/reference.lux
+++ /dev/null
@@ -1,53 +0,0 @@
-(;module:
- lux
- (lux (control monad)
- [meta]
- (meta [code]
- (type ["tc" check])))
- (luxc ["&" base]
- (lang ["la" analysis #+ Analysis]
- [";L" variable #+ Variable])
- ["&;" scope]))
-
-## [Analysers]
-(def: (analyse-definition def-name)
- (-> Ident (Meta Analysis))
- (do meta;Monad<Meta>
- [actualT (meta;find-def-type def-name)
- expectedT meta;expected-type
- _ (&;with-type-env
- (tc;check expectedT actualT))]
- (wrap (code;symbol def-name))))
-
-(def: (analyse-variable var-name)
- (-> Text (Meta (Maybe Analysis)))
- (do meta;Monad<Meta>
- [?var (&scope;find var-name)]
- (case ?var
- (#;Some [actualT ref])
- (do @
- [expectedT meta;expected-type
- _ (&;with-type-env
- (tc;check expectedT actualT))]
- (wrap (#;Some (` ((~ (code;int (variableL;from-ref ref))))))))
-
- #;None
- (wrap #;None))))
-
-(def: #export (analyse-reference reference)
- (-> Ident (Meta Analysis))
- (case reference
- ["" simple-name]
- (do meta;Monad<Meta>
- [?var (analyse-variable simple-name)]
- (case ?var
- (#;Some analysis)
- (wrap analysis)
-
- #;None
- (do @
- [this-module meta;current-module-name]
- (analyse-definition [this-module simple-name]))))
-
- _
- (analyse-definition reference)))