diff --git a/ocaml-lsp-server/test/e2e-new/rename.ml b/ocaml-lsp-server/test/e2e-new/rename.ml index c46b26aab..2f4634810 100644 --- a/ocaml-lsp-server/test/e2e-new/rename.ml +++ b/ocaml-lsp-server/test/e2e-new/rename.ml @@ -85,6 +85,31 @@ let%expect_test "prepare rename leaks a lexer error on an astral character" = |}] ;; +let%expect_test "prepare rename leaks Not_found on an incomplete local module" = + run "let module X" (fun client -> + let* result = + Fiber.collect_errors (fun () -> + prepare_rename client (Position.create ~line:0 ~character:12)) + in + match result with + | Error [ { Exn_with_backtrace.exn = Jsonrpc.Response.Error.E error; backtrace = _ } ] + -> + Jsonrpc.Response.Error.yojson_of_t error |> censor_backtraces |> Test.print_result; + Fiber.return () + | Error errors -> Fiber.reraise_all errors + | Ok response -> + print_prepare_rename response; + Fiber.return ()); + [%expect + {| + { + "data": { "exn": "Not_found", "backtrace": "" }, + "code": -32603, + "message": "uncaught exception" + } + |}] +;; + let%expect_test "rename returns overlapping edits for an incomplete binding" = run "let rec ma" (fun client -> let* response =