From 5e60826154300c74d0b4bfdc6717cbf4e74f59a5 Mon Sep 17 00:00:00 2001 From: Ralf Jung <jung@mpi-sws.org> Date: Thu, 4 Oct 2018 17:41:14 +0200 Subject: [PATCH] fix clear pattern in destruct pattern --- tests/proofmode.v | 6 ++++++ theories/proofmode/ltac_tactics.v | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/proofmode.v b/tests/proofmode.v index d1da557f9..0cc6d3cb0 100644 --- a/tests/proofmode.v +++ b/tests/proofmode.v @@ -587,6 +587,12 @@ Proof. iIntros "?". iExists _. iApply modal_if_lemma2. done. Qed. +Lemma test_iDestruct_clear P Q R : + P -∗ (Q ∗ R) -∗ True. +Proof. + iIntros "HP HQR". iDestruct "HQR" as "{HP} [HQ HR]". done. +Qed. + End tests. (** Test specifically if certain things print correctly. *) diff --git a/theories/proofmode/ltac_tactics.v b/theories/proofmode/ltac_tactics.v index 94359d4b5..c4594b699 100644 --- a/theories/proofmode/ltac_tactics.v +++ b/theories/proofmode/ltac_tactics.v @@ -1102,19 +1102,19 @@ Local Ltac iDestructHypGo Hz pat := | IModalElim ?pat => iModCore Hz; iDestructHypGo Hz pat | _ => fail "iDestruct:" pat "invalid" end. -Local Ltac iDestructHypFindPat H pat found pats := +Local Ltac iDestructHypFindPat Hgo pat found pats := lazymatch pats with | [] => lazymatch found with | true => pm_prettify (* post-tactic prettification *) | false => fail "iDestruct:" pat "should contain exactly one proper introduction pattern" end - | ISimpl :: ?pats => simpl; iDestructHypFindPat H pat found pats - | IClear ?H :: ?pats => iClear H; iDestructHypFindPat H pat found pats - | IClearFrame ?H :: ?pats => iFrame H; iDestructHypFindPat H pat found pats + | ISimpl :: ?pats => simpl; iDestructHypFindPat Hgo pat found pats + | IClear ?H :: ?pats => iClear H; iDestructHypFindPat Hgo pat found pats + | IClearFrame ?H :: ?pats => iFrame H; iDestructHypFindPat Hgo pat found pats | ?pat :: ?pats => lazymatch found with - | false => iDestructHypGo H pat; iDestructHypFindPat H pat true pats + | false => iDestructHypGo Hgo pat; iDestructHypFindPat Hgo pat true pats | true => fail "iDestruct:" pat "should contain exactly one proper introduction pattern" end end. -- GitLab