summaryrefslogtreecommitdiff
path: root/testsuite/tests/translprim/ref_spec.ml
diff options
context:
space:
mode:
authorSimon Cruanes <simon.cruanes.2007@m4x.org>2015-11-12 22:18:14 +0100
committerSimon Cruanes <simon.cruanes.2007@m4x.org>2015-12-06 19:24:31 +0100
commit6c5665393e1d755c4c7a5ca5687e303224001b93 (patch)
tree2de0f38cd0bc77828c15cb37c7f28649cad6ba4e /testsuite/tests/translprim/ref_spec.ml
parentb349cb64e9fa70eb8c403aba44715b21bffd6910 (diff)
downloadocaml-6c5665393e1d755c4c7a5ca5687e303224001b93.tar.gz
fix 0007026
- remove write barrier for constant poly variants - add tests
Diffstat (limited to 'testsuite/tests/translprim/ref_spec.ml')
-rw-r--r--testsuite/tests/translprim/ref_spec.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/testsuite/tests/translprim/ref_spec.ml b/testsuite/tests/translprim/ref_spec.ml
index 37553ef914..3a01bf8dba 100644
--- a/testsuite/tests/translprim/ref_spec.ml
+++ b/testsuite/tests/translprim/ref_spec.ml
@@ -40,3 +40,13 @@ gen_rec.y <- D "foo";;
gen_rec.y <- C;;
flt_rec.y <- 1.;;
flt_rec'.z <- 1.;;
+
+(* must use a write barrier, type is open *)
+let set_open_poly (r:[>`Foo] ref) y = r := y ;;
+let set_open_poly (r:[<`Foo] ref) y = r := y ;;
+let set_open_poly (r:[`Foo] ref) y = r := y ;;
+let set_open_poly (r:[< `Bar | `Foo | `Baz > `Foo `Bar] ref) y = r := y ;;
+let set_open_poly (r:[>`Foo of int] ref) y = r := y ;;
+let set_open_poly (r:[<`Foo of int] ref) y = r := y ;;
+let set_open_poly (r:[`Foo of int] ref) y = r := y ;;
+let set_open_poly (r:[< `Bar | `Foo of float | `Baz > `Foo `Bar] ref) y = r := y ;;