From 7bf5f3f323c58d19ed9774ae17da7eadbacef7b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Pasteur?= Date: Thu, 8 Sep 2011 13:27:31 +0200 Subject: [PATCH] Fixed typing of iterator --- compiler/heptagon/analysis/linear_typing.ml | 2 ++ test/bad/linear_map.ept | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 test/bad/linear_map.ept diff --git a/compiler/heptagon/analysis/linear_typing.ml b/compiler/heptagon/analysis/linear_typing.ml index 06e0f32..697ab07 100644 --- a/compiler/heptagon/analysis/linear_typing.ml +++ b/compiler/heptagon/analysis/linear_typing.ml @@ -361,6 +361,8 @@ let rec fuse_args_lin args_lin collect_lins = | args_lin, [] -> args_lin | (Lat r)::args_lin, collect_lins -> (Lat r)::(fuse_args_lin args_lin collect_lins) + | (Lvar r)::args_lin, x::collect_lins -> + (Lvar r)::(fuse_args_lin args_lin collect_lins) | _::args_lin, x::collect_lins -> x::(fuse_args_lin args_lin collect_lins) diff --git a/test/bad/linear_map.ept b/test/bad/linear_map.ept new file mode 100644 index 0000000..522e28c --- /dev/null +++ b/test/bad/linear_map.ept @@ -0,0 +1,11 @@ +const n:int = 100 + +fun f(a:int^n at r) returns (o:int^n at r) +let + o = [ a with [0] = 0 ] +tel + +fun g(a:int^n^n) returns (o:int^n^n) +let + o = map<> f (a) +tel \ No newline at end of file