aboutsummaryrefslogtreecommitdiff
path: root/src/lux/analyser/base.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-04-02 20:22:00 -0400
committerEduardo Julian2015-04-02 20:22:00 -0400
commitf2ecb4c7338ef050b880e34be82d2d2b2110e257 (patch)
tree397d998cc3d561403c5bf5442136a04525a2fbc0 /src/lux/analyser/base.clj
parent9e095a1a8708a114a4105b4c5a583f6a2830ffc9 (diff)
- Identifiers with just a semi-colon in front now have "lux" as their module, instead of the local module. (e.g. ;map, #;Cons, ;All)
- The type-checker now takes into account 2 types: an exo-type (imposed by outside forces) and an endo-type (generated through inference) - Fixed a few bugs in the analyser and the type-system. - &type/solve* is now the actual type-checker and &type/solve invokes solve* with an empty fixpoint environment. - The exo-type of Statements is Nothing. - variants, tuples and def' are being analyzed properly now.
Diffstat (limited to 'src/lux/analyser/base.clj')
-rw-r--r--src/lux/analyser/base.clj4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lux/analyser/base.clj b/src/lux/analyser/base.clj
index 827d0336e..62ccedb51 100644
--- a/src/lux/analyser/base.clj
+++ b/src/lux/analyser/base.clj
@@ -16,8 +16,8 @@
[["Statement" _]]
(fail (str "[Analyser Error] Can't retrieve the type of a statement: " (pr-str syntax+)))))
-(defn analyse-1 [analyse elem]
- (exec [output (analyse elem)]
+(defn analyse-1 [analyse exo-type elem]
+ (exec [output (analyse exo-type elem)]
(do ;; (prn 'analyse-1 (aget output 0))
(matchv ::M/objects [output]
[["lux;Cons" [x ["lux;Nil" _]]]]