This PR fixes several causes of test flakiness and re-enables the tests that were disabled in #10665, #10669 and #10673. Specifically, it fixes: - A race condition in the file worker that caused it to report an incomplete snapshot prefix in the inlay hint request (confirmed to be the cause of #10665) - A bug in the test runner where it didn't correctly account for non-deterministic message ordering inducing different RPC pointer numbering (confirmed to be the cause of #10673) - A race condition in the watchdog that would sometimes cause the module hierarchy to be empty (likely the cause of #10669, but not confirmed as this issue only reproduced again once in tens of thousands of test runs on various machines, including CI) - An unrelated bug in the module hierarchy implementation that would cause it to report an empty module hierarchy when the file was changed It also replaces some calls to `Task.get` in the language server with `IO.wait` to protect the code against unfortunate compiler re-ordering.
286 lines
9.1 KiB
Text
286 lines
9.1 KiB
Text
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 2, "character": 4}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "1"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0", "info": {"p": "2"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0/0/1", "info": {"p": "3"}}, {"text": "x"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/0/1", "info": {"p": "4"}}, {"text": "x"}]}]}]},
|
||
{"text": " → "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "5"}}, {"text": "True"}]}]}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Nat"}]},
|
||
"names": ["x"],
|
||
"isInserted": true,
|
||
"fvarIds": []}],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "6"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 4, "character": 2}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "1"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0", "info": {"p": "2"}, "diffStatus": "willDelete"},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0/0/1", "info": {"p": "3"}}, {"text": "x"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/0/1", "info": {"p": "4"}}, {"text": "x"}]}]}]},
|
||
{"text": " → "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "5"}}, {"text": "True"}]}]}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Nat"}]},
|
||
"names": ["x"],
|
||
"fvarIds": []}],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "6"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 9, "character": 2}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "0"}},
|
||
{"append":
|
||
[{"text": "∀ ("},
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "1"}}, {"text": "x"}]},
|
||
{"text": " : "},
|
||
{"tag":
|
||
[{"subexprPos": "/0", "info": {"p": "2"}, "diffStatus": "willDelete"},
|
||
{"text": "Nat"}]},
|
||
{"text": "), "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "3"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/1/0",
|
||
"info": {"p": "4"},
|
||
"diffStatus": "willDelete"},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/1/0/0/1", "info": {"p": "5"}},
|
||
{"text": "x"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1/0/1", "info": {"p": "6"}},
|
||
{"text": "x"}]}]}]},
|
||
{"text": " → "},
|
||
{"tag":
|
||
[{"subexprPos": "/1/1", "info": {"p": "7"}},
|
||
{"text": "True"}]}]}]}]}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps": [],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "8"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 15, "character": 5}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "11"}}, {"text": "True"}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Sort u_1"}]},
|
||
"names": ["α"],
|
||
"isType": true,
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "1"}}, {"text": "Nat"}]},
|
||
"names": ["x", "y"],
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "2"}},
|
||
{"append":
|
||
[{"text": "∀ ("},
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "3"}}, {"text": "a"}]},
|
||
{"text": " : "},
|
||
{"tag": [{"subexprPos": "/0", "info": {"p": "4"}}, {"text": "α"}]},
|
||
{"text": "), "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "5"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/1/0/1", "info": {"p": "6"}}, {"text": "x"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1/1",
|
||
"info": {"p": "7"},
|
||
"diffStatus": "willChange"},
|
||
{"text": "y"}]}]}]}]}]},
|
||
"names": ["f"],
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "8"}},
|
||
{"append":
|
||
[{"tag": [{"subexprPos": "/0/1", "info": {"p": "9"}}, {"text": "y"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "10"}}, {"text": "x"}]}]}]},
|
||
"names": ["h"],
|
||
"fvarIds": []}],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "12"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 20, "character": 9}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "11"}}, {"text": "True"}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Sort u_1"}]},
|
||
"names": ["α"],
|
||
"isType": true,
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "1"}}, {"text": "Nat"}]},
|
||
"names": ["x", "y"],
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "2"}},
|
||
{"append":
|
||
[{"text": "∀ ("},
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "3"}}, {"text": "a"}]},
|
||
{"text": " : "},
|
||
{"tag": [{"subexprPos": "/0", "info": {"p": "4"}}, {"text": "α"}]},
|
||
{"text": "), "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "5"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/1/0/1", "info": {"p": "6"}}, {"text": "x"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1/1",
|
||
"info": {"p": "7"},
|
||
"diffStatus": "wasChanged"},
|
||
{"text": "x"}]}]}]}]}]},
|
||
"names": ["f"],
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "8"}},
|
||
{"append":
|
||
[{"tag": [{"subexprPos": "/0/1", "info": {"p": "9"}}, {"text": "y"}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "10"}}, {"text": "x"}]}]}]},
|
||
"names": ["h"],
|
||
"fvarIds": []}],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "12"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 25, "character": 2}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "0"}, "diffStatus": "willChange"},
|
||
{"append":
|
||
[{"tag": [{"subexprPos": "/0/1", "info": {"p": "1"}}, {"text": "True"}]},
|
||
{"text": " ∧ "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "2"}}, {"text": "True"}]}]}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps": [],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "3"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 27, "character": 2}}
|
||
{"goals":
|
||
[{"userName": "left",
|
||
"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "True"}]},
|
||
"mvarId": "[anonymous]",
|
||
"isRemoved": true,
|
||
"hyps": [],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "1"}},
|
||
{"userName": "right",
|
||
"type": {"tag": [{"subexprPos": "/", "info": {"p": "2"}}, {"text": "True"}]},
|
||
"mvarId": "[anonymous]",
|
||
"hyps": [],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "3"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 29, "character": 2}}
|
||
{"goals":
|
||
[{"userName": "right",
|
||
"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "True"}]},
|
||
"mvarId": "[anonymous]",
|
||
"isRemoved": true,
|
||
"hyps": [],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "1"}}]}
|
||
{"textDocument": {"uri": "file:///Diff.lean"},
|
||
"position": {"line": 33, "character": 6}}
|
||
{"goals":
|
||
[{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "4"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0/1", "info": {"p": "5"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/0/1/0/1",
|
||
"info": {"p": "6"},
|
||
"diffStatus": "willChange"},
|
||
{"text": "x"}]},
|
||
{"text": " + "},
|
||
{"tag":
|
||
[{"subexprPos": "/0/1/1",
|
||
"info": {"p": "7"},
|
||
"diffStatus": "willChange"},
|
||
{"text": "z"}]}]}]},
|
||
{"text": " = "},
|
||
{"tag":
|
||
[{"subexprPos": "/1", "info": {"p": "8"}},
|
||
{"append":
|
||
[{"tag":
|
||
[{"subexprPos": "/1/0/1", "info": {"p": "9"}}, {"text": "z"}]},
|
||
{"text": " + "},
|
||
{"tag":
|
||
[{"subexprPos": "/1/1", "info": {"p": "10"}},
|
||
{"text": "y"}]}]}]}]}]},
|
||
"mvarId": "[anonymous]",
|
||
"isInserted": false,
|
||
"hyps":
|
||
[{"type":
|
||
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Nat"}]},
|
||
"names": ["x", "y", "z"],
|
||
"fvarIds": []},
|
||
{"type":
|
||
{"tag":
|
||
[{"subexprPos": "/", "info": {"p": "1"}},
|
||
{"append":
|
||
[{"tag": [{"subexprPos": "/0/1", "info": {"p": "2"}}, {"text": "y"}]},
|
||
{"text": " = "},
|
||
{"tag": [{"subexprPos": "/1", "info": {"p": "3"}}, {"text": "x"}]}]}]},
|
||
"names": ["h"],
|
||
"fvarIds": []}],
|
||
"goalPrefix": "⊢ ",
|
||
"ctx": {"p": "11"}}]}
|