diff options
author | Eduardo Julian | 2015-04-02 20:22:00 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-04-02 20:22:00 -0400 |
commit | f2ecb4c7338ef050b880e34be82d2d2b2110e257 (patch) | |
tree | 397d998cc3d561403c5bf5442136a04525a2fbc0 /src/lux/analyser/base.clj | |
parent | 9e095a1a8708a114a4105b4c5a583f6a2830ffc9 (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.clj | 4 |
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" _]]]] |