From 3695b589eaf0bdf3cdb78cf0b26ba5f70f314dd3 Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Tue, 1 Aug 2017 17:38:17 +0100 Subject: Fixed a bug where as patterns weren't binding their variable correctly --- test/typecheck/pass/as_pattern.sail | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 test/typecheck/pass/as_pattern.sail (limited to 'test') diff --git a/test/typecheck/pass/as_pattern.sail b/test/typecheck/pass/as_pattern.sail new file mode 100644 index 00000000..a1cd9461 --- /dev/null +++ b/test/typecheck/pass/as_pattern.sail @@ -0,0 +1,7 @@ + +val int -> int effect pure test + +function test ((int) _ as x) = +{ + x +} -- cgit v1.2.3 From ec9bfb950087c430ba96387c5b83dc88397e06b2 Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Tue, 1 Aug 2017 18:04:08 +0100 Subject: Fixed a bug where type_synonyms were not being expanded properly when considering possible casts --- test/typecheck/pass/vector_synonym_cast.sail | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 test/typecheck/pass/vector_synonym_cast.sail (limited to 'test') diff --git a/test/typecheck/pass/vector_synonym_cast.sail b/test/typecheck/pass/vector_synonym_cast.sail new file mode 100644 index 00000000..72a7e9d0 --- /dev/null +++ b/test/typecheck/pass/vector_synonym_cast.sail @@ -0,0 +1,8 @@ + +typedef vecsyn = vector<0,1,dec,bit> + +val cast vector<1,1,dec,bit> -> vector<0,1,dec,bit> effect pure test_cast + +val vector<1,1,dec,bit> -> vecsyn effect pure test + +function test x = x -- cgit v1.2.3 From 2dfc638ac88f869a3bf318914cd2060ea363d89a Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Tue, 1 Aug 2017 18:15:21 +0100 Subject: Added ocaml generation to run_tests.sh --- test/typecheck/run_tests.sh | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/typecheck/run_tests.sh b/test/typecheck/run_tests.sh index c4faad7e..8659e60e 100755 --- a/test/typecheck/run_tests.sh +++ b/test/typecheck/run_tests.sh @@ -101,17 +101,20 @@ function test_lem { do if $SAILDIR/sail -lem $DIR/$1/$i 2> /dev/null then + green "generated lem for $1/$i" "pass" + mv $SAILDIR/${i%%.*}_embed_types.lem $DIR/lem/ mv $SAILDIR/${i%%.*}_embed.lem $DIR/lem/ mv $SAILDIR/${i%%.*}_embed_sequential.lem $DIR/lem/ if lem -lib $SAILDIR/src/lem_interp -lib $SAILDIR/src/gen_lib/ $DIR/lem/${i%%.*}_embed_types.lem $DIR/lem/${i%%.*}_embed.lem 2> /dev/null then - green "generated lem for $1/$i" "pass" + green "typechecking lem for $1/$i" "pass" else - red "generated lem for $1/$i" "failed to typecheck lem" + red "typechecking lem for $1/$i" "fail" fi else - red "generated lem for $1/$i" "failed to generate lem" + red "generated lem for $1/$i" "fail" + red "typechecking lem for $1/$i" "fail" fi done } @@ -124,4 +127,24 @@ test_lem rtpass finish_suite "Lem generation 2" +function test_ocaml { + for i in `ls $DIR/pass/`; + do + if $SAILDIR/sail -ocaml $DIR/$1/$i 2> /dev/null + then + green "generated ocaml for $1/$i" "pass" + else + red "generated ocaml for $1/$i" "fail" + fi + done +} + +test_ocaml pass + +finish_suite "Ocaml generation 1" + +test_ocaml rtpass + +finish_suite "Ocaml generation 2" + printf "\n" >> $DIR/tests.xml -- cgit v1.2.3