diff options
author | Simon Cruanes <simon.cruanes.2007@m4x.org> | 2015-11-12 22:18:14 +0100 |
---|---|---|
committer | Simon Cruanes <simon.cruanes.2007@m4x.org> | 2015-12-06 19:24:31 +0100 |
commit | 6c5665393e1d755c4c7a5ca5687e303224001b93 (patch) | |
tree | 2de0f38cd0bc77828c15cb37c7f28649cad6ba4e /testsuite/tests/translprim/ref_spec.ml | |
parent | b349cb64e9fa70eb8c403aba44715b21bffd6910 (diff) | |
download | ocaml-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.ml | 10 |
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 ;; |