-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spurious inconsistent assumptions #1047
Conversation
4f633b2
to
1b22688
Compare
There were issues with This is ready for review. |
I'm reasonably confident this is not going to cause any issue. |
Note: this broke the increasing of verbosity when printing expressions types; we sometimes do need to load cmis.
Obviously at that point it is fine to load cmis, unfortunately we're already under a |
More generally: |
CHANGES: Fri Nov 29 17:35:58 CET 2019 + backend - support OCaml 4.09 (ocaml/merlin#1055) - fix parse errors in 4.08 (ocaml/merlin#1037) - update 4.08 support to OCaml 4.08.1 (ocaml/merlin#1053) - support `without_cmis` - separate reading from caching in file-cache, use caching in `Env.check_state_consistency` (ocaml/merlin#1044) - simplify compiler state management (ocaml/merlin#1056, ocaml/merlin#1059) - fix creation of initial environment, improve compatibility with upstream 4.08 (ocaml/merlin#1052) + frontend - code re-organization (ocaml/merlin#1042) - error command: select which kind of errors to show (ocaml/merlin#995) - print value types in outline (ocaml/merlin#1014) - fix process handling in windows (ocaml/merlin#1005) + editor modes - emacs + bugfixes in merlin-imenu, merlin-xref (ocaml/merlin#1000, ocaml/merlin#1021, ocaml/merlin#1001) + show types in merlin-imenu (ocaml/merlin#1013) + reset buffer local configurations when resetting server (ocaml/merlin#1004) + remove merlin-use-tuareg-imenu + fix stack overflow (ocaml/merlin#1024) + fix merlin-occurrence (ocaml/merlin#1043) - vim + display warn-error warnings as errors (ocaml/merlin#1009) + testsuite - cover file-cache and `check_state_consistency` (ocaml/merlin#1044) - check inconsistent assumptions, test server versus single modes (ocaml/merlin#1047)
CHANGES: Fri Nov 29 17:35:58 CET 2019 + backend - support OCaml 4.09 (ocaml/merlin#1055) - fix parse errors in 4.08 (ocaml/merlin#1037) - update 4.08 support to OCaml 4.08.1 (ocaml/merlin#1053) - support `without_cmis` - separate reading from caching in file-cache, use caching in `Env.check_state_consistency` (ocaml/merlin#1044) - simplify compiler state management (ocaml/merlin#1056, ocaml/merlin#1059) - fix creation of initial environment, improve compatibility with upstream 4.08 (ocaml/merlin#1052) + frontend - code re-organization (ocaml/merlin#1042) - error command: select which kind of errors to show (ocaml/merlin#995) - print value types in outline (ocaml/merlin#1014) - fix process handling in windows (ocaml/merlin#1005) + editor modes - emacs + bugfixes in merlin-imenu, merlin-xref (ocaml/merlin#1000, ocaml/merlin#1021, ocaml/merlin#1001) + show types in merlin-imenu (ocaml/merlin#1013) + reset buffer local configurations when resetting server (ocaml/merlin#1004) + remove merlin-use-tuareg-imenu + fix stack overflow (ocaml/merlin#1024) + fix merlin-occurrence (ocaml/merlin#1043) - vim + display warn-error warnings as errors (ocaml/merlin#1009) + testsuite - cover file-cache and `check_state_consistency` (ocaml/merlin#1044) - check inconsistent assumptions, test server versus single modes (ocaml/merlin#1047)
Some time ago we removed the
without_cmi
thingy, which we did not need anymore with the new version of-short-paths
(that is still waiting to be upstreamed).However recently (i.e. 4.08), other parts of the compiler have been trying to load arbitrary
.cmi
files, that do not go through the usual "give me the best path" code, here are two I found today:Printtyp.rewrite_double_underscore_paths
,Printtyp.Namespace.lookup
.There might be others.
This draft PR adds a test for the first one, I still have to add a test for the second.
As for the fix, the simplest one would be to reintroduce the
without_cmi
nonsense that the compiler is using.Was there a reason to remove it other than "we don't need it"? I have the vague feeling there might have been a reason, but I can't remember.