aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/analyser
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/analyser/function.lux24
1 files changed, 12 insertions, 12 deletions
diff --git a/new-luxc/source/luxc/analyser/function.lux b/new-luxc/source/luxc/analyser/function.lux
index 424a3188f..1432308f8 100644
--- a/new-luxc/source/luxc/analyser/function.lux
+++ b/new-luxc/source/luxc/analyser/function.lux
@@ -19,10 +19,10 @@
(-> &;Analyser Text Text Code (Meta Analysis))
(do Monad<Meta>
[functionT meta;expected-type]
- (loop [expected functionT]
+ (loop [expectedT functionT]
(&;with-stacked-errors
- (function [_] (format "Functions require function types: " (type;to-text expected)))
- (case expected
+ (function [_] (format "Functions require function types: " (type;to-text expectedT)))
+ (case expectedT
(#;Named name unnamedT)
(recur unnamedT)
@@ -38,22 +38,22 @@
(do @
[[var-id var] (&;with-type-env
tc;existential)]
- (recur (maybe;assume (type;apply (list var) expected))))
+ (recur (maybe;assume (type;apply (list var) expectedT))))
(#;ExQ _)
(&common;with-var
(function [[var-id var]]
- (recur (maybe;assume (type;apply (list var) expected)))))
+ (recur (maybe;assume (type;apply (list var) expectedT)))))
(#;Var id)
(do @
[? (&;with-type-env
- (tc;bound? id))]
+ (tc;concrete? id))]
(if ?
(do @
- [expected' (&;with-type-env
- (tc;read id))]
- (recur expected'))
+ [expectedT' (&;with-type-env
+ (tc;read id))]
+ (recur expectedT'))
## Inference
(&common;with-var
(function [[input-id inputT]]
@@ -65,13 +65,13 @@
funT' (&;with-type-env
(tc;clean output-id funT))
concrete-input? (&;with-type-env
- (tc;bound? input-id))
+ (tc;concrete? input-id))
funT'' (if concrete-input?
(&;with-type-env
(tc;clean input-id funT'))
(wrap (type;univ-q +1 (&inference;replace-var input-id +1 funT'))))
_ (&;with-type-env
- (tc;check expected funT''))]
+ (tc;check expectedT funT''))]
(wrap funA))
))))))
@@ -80,7 +80,7 @@
&;with-scope
## Functions have access not only to their argument, but
## also to themselves, through a local variable.
- (&scope;with-local [func-name functionT])
+ (&scope;with-local [func-name expectedT])
(&scope;with-local [arg-name inputT])
(&;with-expected-type outputT)
(analyse body))