summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlasdair Armstrong2017-08-01 17:38:17 +0100
committerAlasdair Armstrong2017-08-01 17:38:17 +0100
commit3695b589eaf0bdf3cdb78cf0b26ba5f70f314dd3 (patch)
tree7fed08c2ad3547c337259c5fb0f04d0342324d3f /src
parenta56ddf5b864c23be7c47dc84882b436b3a4f7473 (diff)
Fixed a bug where as patterns weren't binding their variable correctly
Diffstat (limited to 'src')
-rw-r--r--src/type_check.ml2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/type_check.ml b/src/type_check.ml
index 0a2c0dcb..87f65dcc 100644
--- a/src/type_check.ml
+++ b/src/type_check.ml
@@ -1968,7 +1968,7 @@ and infer_pat env (P_aux (pat_aux, (l, ())) as pat) =
annot_pat (P_vector_concat (inferred_pat :: inferred_pats)) (lvector_typ env len vtyp), env
| P_as (pat, id) ->
let (typed_pat, env) = infer_pat env pat in
- annot_pat (P_as (typed_pat, id)) (pat_typ_of typed_pat), env
+ annot_pat (P_as (typed_pat, id)) (pat_typ_of typed_pat), Env.add_local id (Immutable, pat_typ_of typed_pat) env
| _ -> typ_error l ("Couldn't infer type of pattern " ^ string_of_pat pat)
and bind_assignment env (LEXP_aux (lexp_aux, _) as lexp) (E_aux (_, (l, ())) as exp) =