From dd7cf3a8086fa8a08a421314caec8543ba62226b Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Wed, 4 May 2016 10:36:43 +0200 Subject: Handle primitive projections inside types when extracting (bug #4616). Note that extracting terms containing primitive projections is still utterly broken, so don't use them. --- plugins/extraction/extraction.ml | 2 +- test-suite/bugs/closed/4616.v | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 test-suite/bugs/closed/4616.v diff --git a/plugins/extraction/extraction.ml b/plugins/extraction/extraction.ml index 10644da25d..667721e670 100644 --- a/plugins/extraction/extraction.ml +++ b/plugins/extraction/extraction.ml @@ -285,7 +285,7 @@ let rec extract_type env db j c args = | Ind ((kn,i),u) -> let s = (extract_ind env kn).ind_packets.(i).ip_sign in extract_type_app env db (IndRef (kn,i),s) args - | Case _ | Fix _ | CoFix _ -> Tunknown + | Case _ | Fix _ | CoFix _ | Proj _ -> Tunknown | _ -> assert false (*s Auxiliary function dealing with type application. diff --git a/test-suite/bugs/closed/4616.v b/test-suite/bugs/closed/4616.v new file mode 100644 index 0000000000..c862f82067 --- /dev/null +++ b/test-suite/bugs/closed/4616.v @@ -0,0 +1,4 @@ +Set Primitive Projections. +Record Foo' := Foo { foo : Type }. +Axiom f : forall t : Foo', foo t. +Extraction f. -- cgit v1.2.3