From 0537a5f2ae58f8d721040cf9eee165b08ec90f80 Mon Sep 17 00:00:00 2001 From: herbelin Date: Sat, 18 Jun 2011 18:45:18 +0000 Subject: Partial backtrack on wrong r14204: bug #2490 still open. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14218 85f007b7-540e-0410-9357-904b9bb8a0f7 --- test-suite/bugs/closed/shouldsucceed/2490.v | 28 -------------------------- test-suite/bugs/opened/shouldnotsucceed/2490.v | 28 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 28 deletions(-) delete mode 100644 test-suite/bugs/closed/shouldsucceed/2490.v create mode 100644 test-suite/bugs/opened/shouldnotsucceed/2490.v (limited to 'test-suite') diff --git a/test-suite/bugs/closed/shouldsucceed/2490.v b/test-suite/bugs/closed/shouldsucceed/2490.v deleted file mode 100644 index 3efd742bb0..0000000000 --- a/test-suite/bugs/closed/shouldsucceed/2490.v +++ /dev/null @@ -1,28 +0,0 @@ -Class Rel A := rel : A -> Prop. -Class Rel2 A := rel2 : A -> Prop. -Class Property A (o : A -> Prop) := rel_property : True. - -Class Op A := op : A -> A. -Instance my_op {A} {r : Rel A} {p : Property A r} : Op A := fun x => x. - -Section test. -Context A (r2 : Rel2 A) (p2 : Property A r2). - -(* 8.3 yields an error: "Could not find an instance for "Op A" in environment". - Trunk, on the other hand, uses [r2] as an instance of [Rel] and hence finds -the previously defined instance of [Op]. Trunk's behavior is incorrect. *) -Lemma test (x : A) : op x = op x. -Admitted. - -(* If we don't refer to the canonical name, Coq will actually complain, as it -should. *) -Lemma test (x : A) : my_op x = my_op x. - -End test. - -(* Now we make an instance of [Op] without dependent condition. *) -Instance my_op_nondep {A} {r : Rel A} : Op A := fun x => x. - -Section test2. -Context A (r2 : Rel2 A). - diff --git a/test-suite/bugs/opened/shouldnotsucceed/2490.v b/test-suite/bugs/opened/shouldnotsucceed/2490.v new file mode 100644 index 0000000000..3efd742bb0 --- /dev/null +++ b/test-suite/bugs/opened/shouldnotsucceed/2490.v @@ -0,0 +1,28 @@ +Class Rel A := rel : A -> Prop. +Class Rel2 A := rel2 : A -> Prop. +Class Property A (o : A -> Prop) := rel_property : True. + +Class Op A := op : A -> A. +Instance my_op {A} {r : Rel A} {p : Property A r} : Op A := fun x => x. + +Section test. +Context A (r2 : Rel2 A) (p2 : Property A r2). + +(* 8.3 yields an error: "Could not find an instance for "Op A" in environment". + Trunk, on the other hand, uses [r2] as an instance of [Rel] and hence finds +the previously defined instance of [Op]. Trunk's behavior is incorrect. *) +Lemma test (x : A) : op x = op x. +Admitted. + +(* If we don't refer to the canonical name, Coq will actually complain, as it +should. *) +Lemma test (x : A) : my_op x = my_op x. + +End test. + +(* Now we make an instance of [Op] without dependent condition. *) +Instance my_op_nondep {A} {r : Rel A} : Op A := fun x => x. + +Section test2. +Context A (r2 : Rel2 A). + -- cgit v1.2.3