Skip to content

Commit 6582c3e

Browse files
committed
Refactor to avoid result match statements
The match statement works well, but makes the code a little hard to read. Refactoring in favor of longer conditional statements makes the code more readable
1 parent 0bb86ca commit 6582c3e

1 file changed

Lines changed: 16 additions & 19 deletions

File tree

src/commands/checkModel.ts

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,28 +44,25 @@ export async function checkModel(
4444
): Promise<void> {
4545
const uriResult = fileUri ? ok(fileUri) : getActiveEditorFileUri();
4646

47-
const specFilesResult = await uriResult.match(
48-
async (uri: vscode.Uri): Promise<Result<SpecFiles, ModelCheckingError>> => {
49-
const files = await getSpecFiles(uri, false);
50-
if (!files) {
51-
return err(new ModelCheckingError('Could not load spec files.'));
52-
}
53-
return ok(files);
54-
},
55-
// Use last checked spec if no active TLA+ files are found.
56-
async (error: unknown): Promise<Result<SpecFiles, ModelCheckingError>> => lastCheckFiles ?
57-
ok(lastCheckFiles) :
58-
err(new ModelCheckingError(
59-
'No active TLA+ file or previous spec found. Switch to the .tla or .cfg file to check.'
60-
))
61-
);
47+
let specFiles;
6248

63-
if (specFilesResult.isErr()) {
64-
vscode.window.showErrorMessage(specFilesResult.error.message);
65-
return;
49+
if (uriResult.isErr()) {
50+
// Use last checked spec if no active TLA+ files are found.
51+
if (!lastCheckFiles) {
52+
vscode.window.showErrorMessage(
53+
'No active TLA+ file or previous spec found. Switch to the .tla or .cfg file to check.');
54+
return;
55+
}
56+
specFiles = lastCheckFiles;
57+
} else {
58+
specFiles = await getSpecFiles(uriResult.value, false);
59+
if (!specFiles) {
60+
vscode.window.showErrorMessage('Could not load spec files.');
61+
return;
62+
}
6663
}
6764

68-
doCheckModel(specFilesResult.value, true, extContext, diagnostic, true);
65+
doCheckModel(specFiles, true, extContext, diagnostic, true);
6966
}
7067

7168
export async function runLastCheckAgain(

0 commit comments

Comments
 (0)