diff options
author | Eduardo Julian | 2015-01-02 03:29:32 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-01-02 03:29:32 -0400 |
commit | 7ae54659d09aef5ced3544c650c80d7580a0dbb7 (patch) | |
tree | 562df421d70479622a01fb1915884b5f60a3a0aa /src/lang/analyser.clj | |
parent | f28db7decf3330379f3f4ab190a9bc01deb50b91 (diff) |
Fixed a bug in pattern-matching when expanding sequential tests.
Diffstat (limited to 'src/lang/analyser.clj')
-rw-r--r-- | src/lang/analyser.clj | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lang/analyser.clj b/src/lang/analyser.clj index f45f44138..21117a7b7 100644 --- a/src/lang/analyser.clj +++ b/src/lang/analyser.clj @@ -535,6 +535,11 @@ ;; :let [_ (prn 'analyse-case '$base $base)] [registers mappings tree] (exec [=branches (map-m (fn [?branch] (match ?branch + [::&parser/case-branch [::&parser/ident ?name] ?body] + (exec [=body (with-locals {?name (annotated [::local $scope $base] [::&type/object "java.lang.Object" []])} + (analyse-form* ?body))] + (return [::&parser/case-branch [::&parser/ident ?name] =body])) + [::&parser/case-branch [::&parser/variant ?tag ?members] ?body] (exec [[_ locals+] (reduce-m (fn member-fold [[$local locals-map] ?member] (match ?member |