From 9e483dd505256f7f8d5cd87967b96541469d9d8d Mon Sep 17 00:00:00 2001 From: Mikael Mayer Date: Mon, 14 Aug 2023 11:19:50 -0500 Subject: [PATCH] Fixed warnings and errors --- src/ui/compileCommands.ts | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/ui/compileCommands.ts b/src/ui/compileCommands.ts index 1a4ec4d0..0be408d0 100644 --- a/src/ui/compileCommands.ts +++ b/src/ui/compileCommands.ts @@ -11,17 +11,23 @@ import { Messages } from './messages'; const OutputPathArg = '--output'; +enum CommandType { + Build, + Run, + Test +} + export default class CompileCommands { public static createAndRegister(installer: DafnyInstaller): CompileCommands { installer.context.subscriptions.push( commands.registerCommand(DafnyCommands.Build, () => - buildRunOrTest(installer, false, false, false)), + buildRunOrTest(installer, CommandType.Build, false)), commands.registerCommand(DafnyCommands.BuildCustomArgs, () => - buildRunOrTest(installer, true, false, false)), + buildRunOrTest(installer, CommandType.Build, true)), commands.registerCommand(DafnyCommands.Run, () => - buildRunOrTest(installer, false, true, false)), + buildRunOrTest(installer, CommandType.Run, false)), commands.registerCommand(DafnyCommands.Test, () => - buildRunOrTest(installer, false, false, true)), + buildRunOrTest(installer, CommandType.Test, false)) ); return new CompileCommands(); } @@ -30,7 +36,7 @@ export default class CompileCommands { // Build: run == false && test == false // Run: run == true // Test: run == false && test == true -async function buildRunOrTest(installer: DafnyInstaller, useCustomArgs: boolean, run: boolean, test: boolean): Promise { +async function buildRunOrTest(installer: DafnyInstaller, commandType: CommandType, useCustomArgs: boolean): Promise { const document = window.activeTextEditor?.document; if(document == null) { return false; @@ -42,7 +48,7 @@ async function buildRunOrTest(installer: DafnyInstaller, useCustomArgs: boolean, if(!await document.save()) { return false; } - const compilerCommand = await new CommandFactory(installer, document.fileName, useCustomArgs, run, test).createCompilerCommand(); + const compilerCommand = await new CommandFactory(installer, document.fileName, commandType, useCustomArgs).createCompilerCommand(); if(compilerCommand == null) { return false; } @@ -60,9 +66,8 @@ class CommandFactory { public constructor( private readonly installer: DafnyInstaller, private readonly fileName: string, - private readonly useCustomArgs: boolean, - private readonly run: boolean, - private readonly test: boolean + private readonly commandType: CommandType, + private readonly useCustomArgs: boolean ) {} public async createCompilerCommand(): Promise { @@ -110,17 +115,21 @@ class CommandFactory { } private withCompileAndRun(args: string[]): string[] { - if(this.run) { + if(this.commandType === CommandType.Run) { return [ 'run', '--no-verify', ...args ]; } - if(this.test) { - return [ 'test', '--no-verify', ...args]; + if(this.commandType === CommandType.Test) { + return [ 'test', '--no-verify', ...args ]; + } + if(this.commandType === CommandType.Build) { + return [ 'build', ...args ]; } - return [ 'build', ...args ]; + throw new Error(`Unknown command type: ${this.commandType}`); } private withOutputPath(args: string[]): string[] { - if(this.run || this.test) { + //if(this.run || this.test) { + if(this.commandType === CommandType.Run || this.commandType === CommandType.Test) { return args; } if(args.some(arg => arg.includes(OutputPathArg))) {