diff options
author | Eduardo Julian | 2016-10-21 01:42:47 -0400 |
---|---|---|
committer | Eduardo Julian | 2016-10-21 01:42:47 -0400 |
commit | 5c178d01bce64bdae234c05823f7cb617925e621 (patch) | |
tree | c4da24458ece06fbe298f1ca83992dfe48f065eb /src | |
parent | f9f2b9bab9651c75eb5c884276e8d8c6449ef16d (diff) |
- Added an extra rule to the type-checker to avoid some stack-overflow errors.
Diffstat (limited to 'src')
-rw-r--r-- | src/lux/type.clj | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lux/type.clj b/src/lux/type.clj index 774d6b4d8..ad76fbadc 100644 --- a/src/lux/type.clj +++ b/src/lux/type.clj @@ -629,6 +629,7 @@ (&/$NamedT ?name ?type) (apply-type ?type param) + ;; TODO: This one must go... (&/$ExT id) (return (&/$AppT type-fn param)) @@ -767,6 +768,9 @@ (|do [expected* (apply-type F A)] (check* class-loader (fp-put fp-pair true fixpoints) invariant?? expected* actual)))) + [_ (&/$AppT (&/$ExT aid) A)] + (check-error "" expected actual) + [_ (&/$AppT F A)] (|do [actual* (apply-type F A)] (check* class-loader fixpoints invariant?? expected actual*)) |