aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/success/extraction_polyprop.v
diff options
context:
space:
mode:
authorGravatar Pierre Letouzey <pierre.letouzey@inria.fr>2015-05-12 16:48:01 +0200
committerGravatar Pierre Letouzey <pierre.letouzey@inria.fr>2015-05-12 17:08:25 +0200
commit95b4a54ec6a9aacffe8c11df1b443d36b9f6dda7 (patch)
tree5413999a61ff5eb635a581fc1d2ae41ebe74d54a /test-suite/success/extraction_polyprop.v
parent20fd4f91c5096d2f9c06f2bdca23127be4d81aad (diff)
Extraction: fix the detection of the "polyprop" situation
The ~polyprop argument wasn't propagated properly anymore, leading the extraction to try to operate on situations it cannot handle (yet). Cf Table.error_singleton_become_prop for more details. Regression test added.
Diffstat (limited to 'test-suite/success/extraction_polyprop.v')
-rw-r--r--test-suite/success/extraction_polyprop.v11
1 files changed, 11 insertions, 0 deletions
diff --git a/test-suite/success/extraction_polyprop.v b/test-suite/success/extraction_polyprop.v
new file mode 100644
index 000000000..7215bd990
--- /dev/null
+++ b/test-suite/success/extraction_polyprop.v
@@ -0,0 +1,11 @@
+(* The current extraction cannot handle this situation,
+ and shouldn't try, otherwise it might produce some Ocaml
+ code that segfaults. See Table.error_singleton_become_prop
+ or S. Glondu's thesis for more details. *)
+
+Definition f {X} (p : (nat -> X) * True) : X * nat :=
+ (fst p 0, 0).
+
+Definition f_prop := f ((fun _ => I),I).
+
+Fail Extraction f_prop.