lean4-htt/tests/lean/run/explicitApp.lean
jrr6 7ed716f904
feat: improve projection and field-notation errors (#8986)
This PR improves the error messages produced by invalid projections and
field notation. It also adds a hint to the "function expected" error
message noting the argument to which the term is being applied, which
can be helpful for debugging spurious "function expected" messages
actually caused by syntax errors.

---------

Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
2025-06-26 18:36:47 +00:00

33 lines
658 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/-!
# Tests for app elaborator in explicit mode
-/
namespace Test1
/-!
Named arguments in explicit mode should not cause arguments they depend on to become implicit,
unless there are no more positional arguments.
-/
theorem foo {p : Prop} [Decidable p] (h : ite p x y = x) : p := sorry
variable {p : Prop} [Decidable p] {α : Type} (x y : α) (h : ite p x y = x)
example : p := @foo (h := h)
example : p := @foo (h := h) _ _ _ _ _
/--
error: Function expected at
foo h
but this term has type
p
Note: Expected a function because this term is being applied to the argument
_
-/
#guard_msgs in
example : p := @foo (h := h) _ _ _ _ _ _
end Test1