fix(frontends/lean/elaborator): missing information when displaying unsolved placeholders

This commit is contained in:
Leonardo de Moura 2014-10-26 16:11:58 -07:00
parent cc6a96e8ba
commit a544d32fcf
3 changed files with 10 additions and 1 deletions

View file

@ -1035,7 +1035,7 @@ void elaborator::display_unassigned_mvars(expr const & e, substitution const & s
expr meta = tmp_s.instantiate(*it);
expr meta_type = tmp_s.instantiate(type_checker(env()).infer(meta).first);
goal g(meta, meta_type);
proof_state ps(goals(g), substitution(), m_ngen, constraints());
proof_state ps(goals(g), s, m_ngen, constraints());
display_unsolved_proof_state(e, ps, "don't know how to synthesize it");
}
return false;

4
tests/lean/pstate.lean Normal file
View file

@ -0,0 +1,4 @@
import logic
theorem foo {A : Type} (a b c : A) : a = b → b = c → a = c :=
assume h₁ h₂, eq.trans h₁ _

View file

@ -0,0 +1,5 @@
pstate.lean:4:26: error: unsolved placeholder, don't know how to synthesize it
A : Type, a : A, b : A, c : A, h₁ : a = b, h₂ : b = c ⊢ b = c
pstate.lean:4:7: error: failed to add declaration 'foo' to environment, value has metavariables
λ (A : Type) (a b c : A) (h₁ : a = b) (h₂ : b = c),
eq.trans h₁ ?M_1