10222: internal: Add workaround for rename error reporting r=lnicola a=lnicola

Fixes #9875

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
This commit is contained in:
bors[bot] 2021-09-13 11:52:29 +00:00 committed by GitHub
commit 1ef4b2cb7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -124,9 +124,12 @@ export async function download(opts: DownloadOpts) {
log.info(`Renamed old server binary ${opts.dest.fsPath} to ${oldServerPath.fsPath}`);
} catch (err) {
const fsErr = err as vscode.FileSystemError;
// This is supposed to return `FileNotFound`, alas...
if (!fsErr.code || fsErr.code !== "FileNotFound" && fsErr.code !== "EntryNotFound") {
log.error(`Cannot rename existing server instance: ${err}`);
// This is supposed to return `FileNotFound` (spelled as `EntryNotFound`)
// but instead `code` is `Unknown` and `name` is `EntryNotFound (FileSystemError) (FileSystemError)`.
// https://github.com/rust-analyzer/rust-analyzer/pull/10222
if (!fsErr.code || fsErr.code !== "EntryNotFound" && fsErr.name.indexOf("EntryNotFound") === -1) {
log.error(`Cannot rename existing server instance: ${err}"`);
}
}
try {