lean4-htt/tests/lean/server/content_diag.json
Joachim Breitner 8424ddbb3e
feat: prettier expected type mismatch error message (#9099)
This PR improves the “expected type mismatch” error message by omitting
the type's types when they are defeq, and putting them into separate
lines when not.

I found it rather tediuos to parse the error message when the expected
type is long, because I had to find the `:` in the middle of a large
expression somewhere. Also, when both are of sort `Prop` or `Type` it
doesn't add much value to print the sort (and it’s only one hover away
anyways).
2025-07-01 07:50:53 +00:00

57 lines
No EOL
1.8 KiB
JSON

{"params":
{"version": 1,
"uri": "file:///test.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 4, "character": 0}, "end": {"line": 4, "character": 6}},
"message": "n : Nat",
"fullRange":
{"start": {"line": 4, "character": 0}, "end": {"line": 4, "character": 6}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 8, "character": 0}, "end": {"line": 8, "character": 6}},
"message": "s : String",
"fullRange":
{"start": {"line": 8, "character": 0}, "end": {"line": 8, "character": 6}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 12, "character": 0},
"end": {"line": 12, "character": 5}},
"message": "Hello world!\n",
"fullRange":
{"start": {"line": 12, "character": 0},
"end": {"line": 12, "character": 5}}},
{"source": "Lean 4",
"severity": 1,
"range":
{"start": {"line": 14, "character": 31},
"end": {"line": 14, "character": 40}},
"message":
"type mismatch\n \"NotANat\"\nhas type\n String\nbut is expected to have type\n Nat",
"fullRange":
{"start": {"line": 14, "character": 31},
"end": {"line": 14, "character": 40}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 22, "character": 0},
"end": {"line": 22, "character": 6}},
"message": "MyNs.u : Unit",
"fullRange":
{"start": {"line": 22, "character": 0},
"end": {"line": 22, "character": 6}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 24, "character": 0},
"end": {"line": 24, "character": 6}},
"message": "def MyNs.u : Unit :=\n()",
"fullRange":
{"start": {"line": 24, "character": 0},
"end": {"line": 24, "character": 6}}}]},
"method": "textDocument/publishDiagnostics",
"jsonrpc": "2.0"}